The task create:release
creates a new release. How do we add the artifact core.zip
in task create:release
?
prepare:release:
stage: prepare_release
before_script:
- echo "Setting up packages for Build"
- apk --no-cache add zip
script:
- echo "Preparing release"
- echo "Build Core"
- yarn --cwd ./core/ install && yarn --cwd ./core/ build
- echo "Zip distribution folder for Core"
- zip -r core.zip ./core/dist ./core/node_modules ./core/package.json
artifacts:
paths:
- core.zip
expire_in: never
create:release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- job: prepare:release
artifacts: true
variables:
TAG: '$CI_COMMIT_SHA'
script:
- echo "Create Release $TAG"
release:
name: 'Release $TAG'
tag_name: '$TAG'
ref: '$TAG'
description: 'Release $TAG'
I have resolved this. In prepare:release
job, save the job id in an environment file and this file should be in the artifacts.reports.env
of this job. Later, in the create:release
job, use the API "https://gitlab.com/<namespace>/<project_name>/-/jobs/<job_id>/artifacts/download"
to refer to the artifact.
Updated pipeline:
prepare:release:
stage: prepare_release
before_script:
- echo "Setting up packages for Build"
- apk --no-cache add zip
script:
- echo "Preparing release"
- echo "Build Core"
- yarn --cwd ./core/ install && yarn --cwd ./core/ build
- echo "Zip distribution folder for Core"
- zip -r core.zip ./core/dist ./core/node_modules ./core/package.json
after_script:
- echo "JOB_ID=$CI_JOB_ID" >> job.env
artifacts:
paths:
- core.zip
expire_in: never
reports:
dotenv: job.env
create:release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- job: prepare:release
artifacts: true
variables:
TAG: '$CI_COMMIT_SHA'
script:
- echo "Create Release $TAG"
- echo $JOB_ID
release:
name: 'Release $TAG'
tag_name: '$TAG'
ref: '$TAG'
description: 'Release $TAG'
assets:
links:
- name: "core.zip"
url: "https://gitlab.com/<namespace>/<project_name>/-/jobs/$JOB_ID/artifacts/download"