From a817b15f0339764b2d06f9ea16fac0b45fe94f93 Mon Sep 17 00:00:00 2001 From: Yana Kernerman <kernerya@gmail.com> Date: Sun, 11 Aug 2024 17:26:53 +0200 Subject: [PATCH] build job for any branch or merge request --- .gitlab-ci.yml | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b229c54..b477485 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,12 +5,50 @@ workflow: when: 'always' - when: 'never' +stages: + - test + - build + - publish -job_trigger-pipeline: - trigger: - project: 'fb6-wp11-devops/webservice-build-and-publish' +# Main job to test the application +job_test_the_code: + stage: test + image: registry.hub.docker.com/library/golang:1.21 # Official Docker image provided by Go. It contains pre-configured environment for building and running Go applications. + script: + - go get -t ./... # Installs dependencies, including those for testing + - go test -race -v ./... # Run tests with race detection enabled +job_build_artifact: + stage: build + rules: # Conditions under which this job should run + - if: $CI_COMMIT_REF_NAME =~ /^.*$/ # Run this job for any branch or merge request event. + when: always + image: registry.hub.docker.com/library/golang:1.21 + script: + - go get -t ./... # Installs dependencies + - go build -o ./artifact.bin ./*.go # Builds the Go application and outputs a binary named artifact.bin + artifacts: + paths: # Specifies the paths to the files that are to be saved as artifacts after the job has been completed. + - ./artifact.bin + expire_in: 1 week -hello-world-job: +job_publish_artifact: + stage: publish + rules: # Conditions under which this job should run + - if: $CI_COMMIT_REF_NAME =~ /^.*$/ # Run this job for any branch or merge request event. + when: always + image: curlimages/curl:latest # Custom image with curl + tags: + - docker-privileged + dependencies: + - job_build_artifact script: - - 'ls -al ./' + - echo "Publishing artifact..." + - | + curl \ + --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \ + --upload-file ./artifact.bin \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/artifacts/${version}/webservice" + only: + - tags + -- GitLab