|
1 | 1 | include: |
2 | 2 | - local: .ci/commons.gitlab-ci.yml |
3 | 3 |
|
4 | | -########################################### |
5 | | -### Push Cloudflared Binaries to Github ### |
6 | | -########################################### |
7 | | -release-cloudflared-to-github: |
| 4 | + ###################################### |
| 5 | + ### Build and Push DockerHub Image ### |
| 6 | + ###################################### |
| 7 | + - component: $CI_SERVER_FQDN/cloudflare/ci/docker-image/build-push-image@~latest |
| 8 | + inputs: |
| 9 | + stage: release |
| 10 | + jobPrefix: docker-hub |
| 11 | + runOnMR: false |
| 12 | + runOnBranches: '^master$' |
| 13 | + runOnChangesTo: ['RELEASE_NOTES'] |
| 14 | + needs: |
| 15 | + - generate-version-file |
| 16 | + - release-cloudflared-to-r2 |
| 17 | + commentImageRefs: false |
| 18 | + runner: vm-linux-x86-4cpu-8gb |
| 19 | + DOCKER_USER_BRANCH: svcgithubdockerhubcloudflar045 |
| 20 | + DOCKER_PASSWORD_BRANCH: gitlab/cloudflare/tun/cloudflared/_dev/dockerhub/svc_password/data |
| 21 | + EXTRA_DIB_ARGS: --overwrite |
| 22 | + |
| 23 | +.default-release-job: &release-job-defaults |
8 | 24 | stage: release |
9 | 25 | image: $BUILD_IMAGE |
10 | | - extends: .check-tag |
11 | | - needs: |
12 | | - - ci-image-get-image-ref |
13 | | - - package-windows |
14 | | - - build-and-sign-cloudflared-macos |
15 | 26 | rules: |
16 | 27 | - !reference [.default-rules, run-on-master] |
17 | 28 | cache: |
18 | 29 | paths: |
19 | 30 | - .cache/pip |
20 | 31 | variables: |
21 | 32 | PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" |
| 33 | + # KV Vars |
22 | 34 | KV_NAMESPACE: 380e19aa04314648949b6ad841417ebe |
23 | | - KV_ACCOUNT: 5ab4e9dfbd435d24068829fda0077963 |
| 35 | + KV_ACCOUNT: &cf-account 5ab4e9dfbd435d24068829fda0077963 |
| 36 | + # R2 Vars |
| 37 | + R2_BUCKET: cloudflared-pkgs |
| 38 | + R2_ACCOUNT_ID: *cf-account |
| 39 | + # APT and RPM Repository Vars |
| 40 | + GPG_PUBLIC_KEY_URL: "https://pkg.cloudflare.com/cloudflare-ascii-pubkey.gpg" |
| 41 | + PKG_URL: "https://pkg.cloudflare.com/cloudflared" |
| 42 | + BINARY_NAME: cloudflared |
24 | 43 | secrets: |
25 | 44 | KV_API_TOKEN: |
26 | 45 | vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_kv_api_token/data@kv |
27 | 46 | file: false |
28 | 47 | API_KEY: |
29 | 48 | vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_github_api_key/data@kv |
30 | 49 | file: false |
| 50 | + R2_CLIENT_ID: |
| 51 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/_terraform_atlantis/r2_api_token/client_id@kv |
| 52 | + file: false |
| 53 | + R2_CLIENT_SECRET: |
| 54 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/_terraform_atlantis/r2_api_token/client_secret@kv |
| 55 | + file: false |
| 56 | + LINUX_SIGNING_PUBLIC_KEY: |
| 57 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/gpg_v1/public_key@kv |
| 58 | + file: false |
| 59 | + LINUX_SIGNING_PRIVATE_KEY: |
| 60 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/gpg_v1/private_key@kv |
| 61 | + file: false |
| 62 | + LINUX_SIGNING_PUBLIC_KEY_2: |
| 63 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/gpg_v2/public_key@kv |
| 64 | + file: false |
| 65 | + LINUX_SIGNING_PRIVATE_KEY_2: |
| 66 | + vault: gitlab/cloudflare/tun/cloudflared/_dev/gpg_v2/private_key@kv |
| 67 | + file: false |
| 68 | + |
| 69 | +########################################### |
| 70 | +### Push Cloudflared Binaries to Github ### |
| 71 | +########################################### |
| 72 | +release-cloudflared-to-github: |
| 73 | + <<: *release-job-defaults |
| 74 | + extends: .check-tag |
| 75 | + needs: |
| 76 | + - build-and-sign-cloudflared-macos |
| 77 | + - ci-image-get-image-ref |
| 78 | + - linux-packaging |
| 79 | + - linux-packaging-fips |
| 80 | + - package-windows |
| 81 | + script: |
| 82 | + - ./.ci/scripts/release-target.sh github-release |
| 83 | + |
| 84 | +######################################### |
| 85 | +### Upload Cloudflared Binaries to R2 ### |
| 86 | +######################################### |
| 87 | +release-cloudflared-to-r2: |
| 88 | + <<: *release-job-defaults |
| 89 | + extends: .check-tag |
| 90 | + needs: |
| 91 | + - ci-image-get-image-ref |
| 92 | + - linux-packaging # We only release non-FIPS binaries to R2 |
| 93 | + - release-cloudflared-to-github |
31 | 94 | script: |
32 | | - - python3 --version ; pip --version # For debugging |
33 | | - - python3 -m venv venv |
34 | | - - source venv/bin/activate |
35 | | - - pip install pynacl==1.4.0 pygithub==1.55 |
36 | | - - echo $VERSION |
37 | | - - echo $TAG_EXISTS |
38 | | - - echo "Running release because tag exists." |
39 | | - - make gitlab-release |
| 95 | + - ./.ci/scripts/release-target.sh r2-linux-release |
| 96 | + |
| 97 | +################################################# |
| 98 | +### Upload Cloudflared Nightly Binaries to R2 ### |
| 99 | +################################################# |
| 100 | +release-cloudflared-nightly-to-r2: |
| 101 | + <<: *release-job-defaults |
| 102 | + variables: |
| 103 | + R2_BUCKET: cloudflared-pkgs-next |
| 104 | + GPG_PUBLIC_KEY_URL: "https://next.pkg.cloudflare.com/cloudflare-ascii-pubkey.gpg" |
| 105 | + PKG_URL: "https://next.pkg.cloudflare.com/cloudflared" |
| 106 | + needs: |
| 107 | + - ci-image-get-image-ref |
| 108 | + - linux-packaging # We only release non-FIPS binaries to R2 |
| 109 | + script: |
| 110 | + - ./.ci/scripts/release-target.sh r2-linux-release |
| 111 | + |
| 112 | +############################# |
| 113 | +### Generate Version File ### |
| 114 | +############################# |
| 115 | +generate-version-file: |
| 116 | + <<: *release-job-defaults |
| 117 | + needs: |
| 118 | + - ci-image-get-image-ref |
| 119 | + script: |
| 120 | + - make generate-docker-version |
| 121 | + artifacts: |
| 122 | + paths: |
| 123 | + - versions |
0 commit comments