# This file is a template, and might need editing before it works on your project. # To contribute improvements to CI/CD templates, please follow the Development guide at: # https://docs.gitlab.com/ee/development/cicd/templates.html # This specific template is located at: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml # This is a sample GitLab CI/CD configuration file that should run without any modifications. # It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, # it uses echo commands to simulate the pipeline execution. # # A pipeline is composed of independent jobs that run scripts, grouped into stages. # Stages run in sequential order, but jobs within stages run in parallel. # # For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages stages: # List of stages for jobs, and their order of execution - test - build - release image: node:latest cache: key: $CI_COMMIT_REF_SLUG paths: - .npm/ before_script: - npm ci --cache .npm --prefer-offline lint-test-job: stage: test script: - echo "Linting code with eslint." # - npm i eslint - node_modules/eslint/bin/eslint.js . build-job: # This job runs in the build stage, which runs first. stage: build script: - npm run distribute - echo "BUILD_JOB_ID=$CI_JOB_ID" >> build-job.env artifacts: paths: - release/knowledge-space.zip reports: # To ensure we've access to this file in the next stage dotenv: build-job.env expire_in: never rules: - if: $CI_COMMIT_TAG release-job: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest before_script: - '' needs: - job: build-job artifacts: true rules: - if: $CI_COMMIT_TAG script: - echo "Running release-job for build $BUILD_JOB_ID." release: name: "Release $CI_COMMIT_TAG" description: "Automated release for version $CI_COMMIT_TAG" tag_name: "$CI_COMMIT_TAG" assets: links: - name: "Plugin Zip Archive" url: https://gitlab.ibr.cs.tu-bs.de/alg/knowledge-space-wp-plugin/-/jobs/$BUILD_JOB_ID/artifacts/raw/release/knowledge-space.zip # deploy-job: # This job runs in the deploy stage. # stage: deploy # It only runs when *both* jobs in the test stage complete successfully. # script: # - echo "Deploying application..." # - echo "Application successfully deployed."