Skip to content
Snippets Groups Projects
Commit ca8cb60b authored by David Byers's avatar David Byers
Browse files

First try at automatic releases.

parent f1241764
No related branches found
No related tags found
No related merge requests found
Pipeline #34148 failed
...@@ -10,7 +10,30 @@ stages: ...@@ -10,7 +10,30 @@ stages:
.release_rules: &release_rules .release_rules: &release_rules
rules: rules:
- if: "$CI_COMMIT_TAG =~ /^release-/ && $CI_COMMIT_BRANCH == 'release'" - if: '$CI_COMMIT_TAG'
when: never
- if: '$CI_COMMIT_BRANCH != "master"'
when: never
- if: "$CI_COMMIT_MESSAGE =~ /^#release/"
when: always
- when: never
# When changing, also make changes to copies in the build stage
.beta_rules: &beta_rules
rules:
- if: '$CI_COMMIT_TAG'
when: never
- if: '$CI_COMMIT_BRANCH != "master"'
when: never
- if: "$CI_COMMIT_MESSAGE =~ /#release/"
when: never
- when: always
.dev_rules: &dev_rules
rules:
- if: '$CI_COMMIT_TAG'
when: never
- if: '$CI_COMMIT_BRANCH != "master"'
when: always when: always
- when: never - when: never
...@@ -39,16 +62,11 @@ prepare:dev: ...@@ -39,16 +62,11 @@ prepare:dev:
script: script:
- VERSION=$(python3 scripts/update-version.py -n) - VERSION=$(python3 scripts/update-version.py -n)
- bash scripts/build.sh --version "$VERSION" - bash scripts/build.sh --version "$VERSION"
only: <<: *dev_rules
- branches
except:
- release
- master
prepare:beta: prepare:beta:
extends: .prepare extends: .prepare
only: <<: *beta_rules
- master
prepare:release: prepare:release:
extends: .prepare extends: .prepare
...@@ -65,6 +83,7 @@ prepare:release: ...@@ -65,6 +83,7 @@ prepare:release:
# Build for Edge # Build for Edge
# #
.build:edge: .build:edge:
stage: build stage: build
image: python:3.7-stretch image: python:3.7-stretch
...@@ -82,18 +101,10 @@ build:edge:beta: ...@@ -82,18 +101,10 @@ build:edge:beta:
variables: variables:
VARIANT: beta VARIANT: beta
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"' <<: *beta_rules
changes:
- shared/**/*
- firefox/**/*
- edge/**/*
when: always
- if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|edge)/ && $CI_COMMIT_BRANCH == "master"'
when: always
- when: never
build:edge:release: build:edge:release:
extends: .build:thunderbird extends: .build:edge
variables: variables:
VARIANT: release VARIANT: release
<<: *release_rules <<: *release_rules
...@@ -126,13 +137,18 @@ build:firefox:beta: ...@@ -126,13 +137,18 @@ build:firefox:beta:
CHANNEL: unlisted CHANNEL: unlisted
VARIANT: beta VARIANT: beta
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_TAG'
changes: when: never
- if: '$CI_COMMIT_BRANCH != "master"'
when: never
- if: "$CI_COMMIT_MESSAGE =~ /#release/"
when: never
- if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/'
when: always
- changes:
- shared/**/* - shared/**/*
- firefox/**/* - firefox/**/*
when: always when: always
- if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|firefox)/ && $CI_COMMIT_BRANCH == "master"'
when: always
- when: never - when: never
build:firefox:release: build:firefox:release:
...@@ -163,15 +179,7 @@ build:thunderbird:beta: ...@@ -163,15 +179,7 @@ build:thunderbird:beta:
extends: .build:thunderbird extends: .build:thunderbird
variables: variables:
VARIANT: beta VARIANT: beta
rules: <<: *beta_rules
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"'
changes:
- shared/**/*
- thunderbird/**/*
when: always
- if: '$CI_COMMIT_MESSAGE =~ /#force-build:(all|thunderbird)/ && $CI_COMMIT_BRANCH == "master"'
when: always
- when: never
build:thunderbird:release: build:thunderbird:release:
extends: .build:thunderbird extends: .build:thunderbird
...@@ -190,9 +198,8 @@ collect: ...@@ -190,9 +198,8 @@ collect:
stage: collect stage: collect
image: busybox image: busybox
script: script:
- echo "I have seen the CONSING!" - 'echo "I have seen the CONSING!"'
only: <<: *beta_rules
- master
pages: pages:
stage: deploy stage: deploy
...@@ -222,8 +229,34 @@ pages: ...@@ -222,8 +229,34 @@ pages:
job: build:edge:beta job: build:edge:beta
ref: $CI_COMMIT_REF_NAME ref: $CI_COMMIT_REF_NAME
artifacts: true artifacts: true
only: <<: *beta_rules
- master
artifacts: artifacts:
paths: paths:
- public/ - public/
# Upload and release
upload:
stage: collect
image: curlimages/curl:latest
script:
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-firefox-release.xpi ${PACKAGE_REGISTRY_URL}/
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-thunderbird-release.xpi ${PACKAGE_REGISTRY_URL}/
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-edge-release.zip ${PACKAGE_REGISTRY_URL}/
<<: *release_rules
release:
stage: deploy
image: registry.gitlab.com/gitlab-org/release-cli:latest
script:
- VERSION=$(cat version)
- PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${VERSION}"
- |
release-cli create --name "Release $VERSION" --description "Release $VERSION" --tag-name "release-$VERSION" --assets-link "{\"name\":\"safelinks-cleaner-thunderbird-release.xpi\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-thunderbird-release.xpi\"}" --assets-link "{\"name\":\"safelinks-cleaner-firefox-release.xpi\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-firefox-release.xpi\"}" --assets-link "{\"name\":\"safelinks-cleaner-edge-release.zip\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-edge-release.zip\"}"
<<: *release_rules
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment