From bc58527fe5f07110a8b155ee5f89519e7984f36f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Wed, 15 Feb 2023 20:35:24 +0100 Subject: [PATCH] Add CI for individual submodules of QWT - R4.2 variant --- r4.2/gitlab-base.yml | 4 ++-- r4.2/gitlab-host-qwt.yml | 14 ++++++++++++++ scripts/gitlab-preparev2 | 28 ++++++++++++++++++++++++---- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 r4.2/gitlab-host-qwt.yml diff --git a/r4.2/gitlab-base.yml b/r4.2/gitlab-base.yml index 6ddc327..c21446d 100644 --- a/r4.2/gitlab-base.yml +++ b/r4.2/gitlab-base.yml @@ -47,7 +47,7 @@ stages: - mv ~/qubes-continuous-integration/scripts/combine-and-sign-repo ~/qubes-builder/ - mv ~/qubes-continuous-integration/scripts/gitlab-builderv2.yml ~/qubes-builder/builder.yml script: - - ~/qubes-builder/gitlab-preparev2 "$CI_PROJECT_DIR" + - ~/qubes-builder/gitlab-preparev2 "$CI_PROJECT_DIR" $SUBMODULE_OF - tar cJf $CI_PROJECT_DIR/qubes-builder.tar.xz --strip-components=1 -C ~/ qubes-builder after_script: - sudo rm -rf $CI_PROJECT_DIR/artifacts @@ -67,7 +67,7 @@ stages: # Extract from prepare stage qubes-builder directory - tar xf $CI_PROJECT_DIR/qubes-builder.tar.xz -C ~/ script: - - ~/qubes-builder/gitlab-buildv2 "$CI_PROJECT_DIR" "${CI_JOB_NAME#r4.2:build:}" + - ~/qubes-builder/gitlab-buildv2 "${COMPONENT-$CI_PROJECT_DIR}" "${DIST-${CI_JOB_NAME#r4.2:build:}}" after_script: - sudo rm -rf $CI_PROJECT_DIR/artifacts - mv ~/qubes-builder/artifacts $CI_PROJECT_DIR/ diff --git a/r4.2/gitlab-host-qwt.yml b/r4.2/gitlab-host-qwt.yml new file mode 100644 index 0000000..505ea8b --- /dev/null +++ b/r4.2/gitlab-host-qwt.yml @@ -0,0 +1,14 @@ +variables: + SUBMODULE_OF: qubes-windows-tools-cross + +r4.2:build:host-qwt: + extends: .r4.2_components_build + needs: + - r4.2:prep:sources +# - project: QubesOS/qubes-builder-rpm +# ref: master +# job: chroot:dom0-fc32 +# artifacts: true + variables: + DIST: "host-fc37" + COMPONENT: qubes-windows-tools-cross diff --git a/scripts/gitlab-preparev2 b/scripts/gitlab-preparev2 index a05b0c2..48ffceb 100755 --- a/scripts/gitlab-preparev2 +++ b/scripts/gitlab-preparev2 @@ -7,7 +7,15 @@ builder_dir="$(dirname "$0")" # Component directory is passed as argument component_dir="$1" -component_name="$(basename "$component_dir")" + +# if submodule=true, treat $component_dir as submodule of $component_name +submodule=false +if [ -n "${2-}" ]; then + component_name="$2" + submodule=true +else + component_name="$(basename "$component_dir")" +fi if [ -z "$component_dir" ]; then echo "Please provide component directory!" @@ -24,9 +32,21 @@ component_name=${component_name#qubes-} # Go to builder root directory cd "$builder_dir" -# Place Gitlab CI downloaded sources in artifacts/sources -mkdir -p artifacts/sources -cp -a "$component_dir" "artifacts/sources/$component_name" +if ! $submodule; then + # Place Gitlab CI downloaded sources in artifacts/sources + mkdir -p artifacts/sources + cp -a "$component_dir" "artifacts/sources/$component_name" +fi # Run fetch stage ./qb -c "$component_name" package fetch + +if $submodule; then + submodule_name=$(basename "$component_dir") + if ! [ -d "artifacts/sources/$component_name/$submodule_name" ]; then + echo "$submodule_name is not within $component_name component" + exit 1 + fi + rm -rf "artifacts/sources/$component_name/$submodule_name" + cp -a "$component_dir" "artifacts/sources/$component_name/$submodule_name" +fi