diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 19832a09cf6a1ad97880bdaf16d2bf7452d162da..d9f76757ee802abc53b912258620b3a92c1318af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,15 @@ stages: - test - build + - upload - release +variables: + BINARY_NAME: "freva-ingest" + VERSION: "${CI_COMMIT_TAG}" + LINUX_AMD64_BINARY: "${BINARY_NAME}-linux-amd64-${VERSION}" + PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/freva/freva-ingest/${PACKAGE_VERSION}" + default: image: rust:latest tags: @@ -27,8 +34,8 @@ test: script: - cargo test -build: - stage: release +build-linux: + stage: build script: - cargo build --release artifacts: @@ -36,3 +43,23 @@ build: - target/release/freva-ingest rules: - if: $CI_COMMIT_TAG + +upload: + stage: upload + image: curlimages/curl:latest + rules: + - if: $CI_COMMIT_TAG + script: + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \ + --upload-file target/release/${BINARY_NAME} "${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}" + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: $CI_COMMIT_TAG + script: + - | + release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ + --assets-link "{\"name\":\"${LINUX_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}\"}"