--- # global settings image: alpine:edge variables: GOFLAGS: "-buildvcs=false" PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/mkinitfs-vendor-${CI_COMMIT_TAG}/${CI_COMMIT_TAG}" stages: - build - vendor - release workflow: rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH == 'master' - if: '$CI_COMMIT_TAG != null' build: stage: build variables: GOTEST: "gotestsum --junitfile report.xml --format testname -- ./..." before_script: - apk -q add go gotestsum staticcheck make scdoc script: - make test - make artifacts: expire_in: 1 week reports: junit: report.xml vendor: stage: vendor image: alpine:latest rules: - if: '$CI_COMMIT_TAG != null' before_script: - apk -q add curl go make script: - | make VERSION="${CI_COMMIT_TAG}" vendor curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz" "${PACKAGE_REGISTRY_URL}/" curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz.sha512" "${PACKAGE_REGISTRY_URL}/" release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: '$CI_COMMIT_TAG != null' script: - | release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ --assets-link "{\"name\":\"mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz\"}" \ --assets-link "{\"name\":\"mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz.sha512\",\"url\":\"${PACKAGE_REGISTRY_URL}/mkinitfs-vendor-${CI_COMMIT_TAG}.tar.gz.sha512\"}"