Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
      - build
    
    
    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
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
        - echo "BUILD_JOB_ID=$CI_JOB_ID" >> build-job.env
    
          - release/knowledge-space.zip
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
        reports:
          # To ensure we've access to this file in the next stage
          dotenv: build-job.env
    
      rules:
      - if: $CI_COMMIT_TAG
    
    release-job:
      stage: release
      image: registry.gitlab.com/gitlab-org/release-cli:latest
      
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
        - 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"
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
        tag_name: "$CI_COMMIT_TAG"
    
        assets:
          links:
            - name: "Plugin Zip Archive"
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
              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."