From 532a66fc17cf3a6a74ca844d21acf8efba04680b Mon Sep 17 00:00:00 2001 From: Anthony Graignic <anthony.graignic@uca.fr> Date: Thu, 11 Jan 2024 11:51:28 +0100 Subject: [PATCH] Add docker build to release --- .gitlab-ci.yml | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c8aff2d..b3739ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,22 +46,39 @@ package-docker: exists: - Dockerfile -release-build-windows: +# release-build-windows: +# stage: release-build +# script: +# - cargo build --target x86_64-pc-windows-gnu --release +# - | +# curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-pc-windows-gnu/release/testnet-injector.exe" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/win-x86_64/testnet-injector.exe" +# rules: +# - if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/" +# when: always + +release-build-linux: stage: release-build script: - - cargo build --target x86_64-pc-windows-gnu --release + - cargo build --target x86_64-unknown-linux-gnu --release - | - curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-pc-windows-gnu/release/testnet-injector.exe" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/win-x86_64/testnet-injector.exe" + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-unknown-linux-gnu/release/testnet-injector" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/testnet-injector" rules: - if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/" when: always -release-build-linux: +release-docker: stage: release-build + image: docker:latest + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + variables: + CONTAINER_COMMIT_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" + CONTAINER_RELEASE_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" script: - - cargo build --target x86_64-unknown-linux-gnu --release - - | - curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-unknown-linux-gnu/release/testnet-injector" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/testnet-injector" + - echo "Building docker image... (CONTAINER_COMMIT_IMAGE = ${CONTAINER_COMMIT_IMAGE}, CONTAINER_RELEASE_IMAGE = ${CONTAINER_RELEASE_IMAGE})" + - docker build --pull -t $CONTAINER_COMMIT_IMAGE . + - docker tag $CONTAINER_COMMIT_IMAGE $CONTAINER_RELEASE_IMAGE + - docker push $CONTAINER_RELEASE_IMAGE rules: - if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/" when: always @@ -71,21 +88,25 @@ release: image: registry.gitlab.com/gitlab-org/release-cli:latest variables: LINUX_ASSET_LINK: '{"name":"testnet-injector-linux-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/testnet-injector","type":"package"}' - WIN_ASSET_LINK: '{"name":"testnet-injector-win-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/win-x86_64/testnet-injector.exe","type":"package"}' + # WIN_ASSET_LINK: '{"name":"testnet-injector-win-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/win-x86_64/testnet-injector.exe","type":"package"}' + DOCKER_ASSET_LINK: '{"name":"testnet-injector:${CI_COMMIT_TAG}","url":"${CI_PROJECT_URL}/container_registry","type":"image"}' script: - echo "Releasing..." - echo "Tag = ${CI_COMMIT_TAG}" - echo "URL = ${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}" - echo "LINUX = ${LINUX_ASSET_LINK}" - - echo "WIN = ${WIN_ASSET_LINK}" + # - echo "WIN = ${WIN_ASSET_LINK}" + - echo "DOCKER = ${DOCKER_ASSET_LINK}" - | - release-cli --debug create --name "Release ${CI_COMMIT_TAG}" --tag-name "${CI_COMMIT_TAG}" --assets-link "${LINUX_ASSET_LINK}" --assets-link "${WIN_ASSET_LINK}" + release-cli --debug create --name "Release ${CI_COMMIT_TAG}" --tag-name "${CI_COMMIT_TAG}" --assets-link "${LINUX_ASSET_LINK}" --assets-link "${DOCKER_ASSET_LINK}" - echo "Done!" needs: - - job: release-build-windows - artifacts: true + # - job: release-build-windows + # artifacts: true - job: release-build-linux artifacts: true + - job: release-docker + artifacts: true rules: - if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/" when: always -- GitLab