Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Byers's avatar
    David Byers committed
    ---
    stages:
    
    David Byers's avatar
    David Byers committed
      - build
      - deploy
    
    
    version:
      image: python:3.7-stretch
      stage: version
      script:
    
        - python3 scripts/update-version.py -k "$SSH_TAGGING_KEY" -o version -v
    
      artifacts:
        paths:
          - version
      only:
        - branches
    
    
    
    prepare:
      stage: prepare
      image: python:3.7-stretch
      script:
        - bash scripts/build.sh --version "$(cat version)"
      artifacts:
        paths:
    
    David Byers's avatar
    David Byers committed
          - build/**
    
    David Byers's avatar
    David Byers committed
    .build:firefox:
      stage: build
    
      image: node:lts-buster
    
      cache:
        paths:
          - $CI_PROJECT_DIR/.cache/npm
      before_script:
        - mkdir -p "$CI_PROJECT_DIR/.cache/npm"
    
    David Byers's avatar
    David Byers committed
      script:
    
        - npm install --global web-ext --cache "$CI_PROJECT_DIR/.cache/npm" --prefer-offline --no-audit
    
    David Byers's avatar
    David Byers committed
        - cd build/firefox
    
        - web-ext -a . sign --channel=$CHANNEL
        - mv atp_safe_links_cleaner* ../../safelinks-cleaner-firefox.xpi
    
    David Byers's avatar
    David Byers committed
      artifacts:
    
    David Byers's avatar
    David Byers committed
        paths:
    
    David Byers's avatar
    David Byers committed
          - safelinks-cleaner-firefox.xpi
    
    David Byers's avatar
    David Byers committed
    build:firefox:beta:
      extends: .build:firefox
    
    David Byers's avatar
    David Byers committed
        CHANNEL: unlisted
    
    David Byers's avatar
    David Byers committed
      rules:
    
    David Byers's avatar
    David Byers committed
        - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "beta"'
    
    David Byers's avatar
    David Byers committed
          changes:
    
    David Byers's avatar
    David Byers committed
            - shared/**
            - firefox/**
    
    David Byers's avatar
    David Byers committed
          when: always
    
        - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/ && $CI_COMMIT_BRANCH == "beta"'
    
    David Byers's avatar
    David Byers committed
          when: always
    
    David Byers's avatar
    David Byers committed
        - when: never
    
    David Byers's avatar
    David Byers committed
    
    
    David Byers's avatar
    David Byers committed
    build:firefox:master:
      extends: .build:firefox
    
    David Byers's avatar
    David Byers committed
        CHANNEL: listed
    
    David Byers's avatar
    David Byers committed
      rules:
    
    David Byers's avatar
    David Byers committed
        - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"'
    
    David Byers's avatar
    David Byers committed
          changes:
    
    David Byers's avatar
    David Byers committed
            - shared/**
            - firefox/**
    
    David Byers's avatar
    David Byers committed
          when: always
    
        - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/ && $CI_COMMIT_BRANCH == "master"'
    
    David Byers's avatar
    David Byers committed
          when: always
    
    David Byers's avatar
    David Byers committed
        - when: never
    
    David Byers's avatar
    David Byers committed
    build:thunderbird:beta:
      stage: build
    
      image: python:3.7-stretch
      script:
        - apt-get -y update
        - apt-get -y install zip
        - cd build/thunderbird
        - zip -r ../../safelinks-cleaner-thunderbird.xpi *
      artifacts:
        paths:
          - safelinks-cleaner-thunderbird.xpi
    
    David Byers's avatar
    David Byers committed
      rules:
        - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "beta"'
    
    David Byers's avatar
    David Byers committed
          changes:
    
    David Byers's avatar
    David Byers committed
            - shared/**
            - thunderbird/**
    
    David Byers's avatar
    David Byers committed
          when: always
    
        - if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/ && $CI_COMMIT_BRANCH == "beta"'
    
    David Byers's avatar
    David Byers committed
          when: always
    
    David Byers's avatar
    David Byers committed
        - when: never
    
    David Byers's avatar
    David Byers committed
    
    
    David Byers's avatar
    David Byers committed
    pages:
    
    David Byers's avatar
    David Byers committed
      stage: deploy
    
    David Byers's avatar
    David Byers committed
      script:
        - cp -r site .public
    
    David Byers's avatar
    David Byers committed
        - sed -i -e "s/%BUILDDATE%/$(date +'%Y-%m-%d %H:%M')/g" .public/index.html
    
        - cp safelinks-cleaner-thunderbird.xpi .public
        - cp safelinks-cleaner-firefox.xpi .public
    
    David Byers's avatar
    David Byers committed
        - mv .public public
        - ls -lr public
    
    David Byers's avatar
    David Byers committed
      needs:
    
    David Byers's avatar
    David Byers committed
        - job: prepare
    
    David Byers's avatar
    David Byers committed
        - project: $CI_PROJECT_PATH
          job: build:thunderbird:beta
          ref: $CI_COMMIT_REF_NAME
          artifacts: true
        - project: $CI_PROJECT_PATH
          job: build:firefox:beta
          ref: $CI_COMMIT_REF_NAME
          artifacts: true
    
      dependencies:
        - build:firefox:beta
        - build:thunderbird:beta
    
    David Byers's avatar
    David Byers committed
      artifacts:
        paths:
          - public/
      only:
    
    David Byers's avatar
    David Byers committed
        - beta
    
    David Byers's avatar
    David Byers committed
      when: always