118 lines
3.8 KiB
YAML
118 lines
3.8 KiB
YAML
stages: [check, build, release]
|
|
|
|
default:
|
|
id_tokens:
|
|
VAULT_ID_TOKEN:
|
|
aud: https://vault.cfdata.org
|
|
|
|
.check_tag:
|
|
before_script:
|
|
- |
|
|
# Check if there is a Git tag pointing to HEAD
|
|
echo "Tag found: $(git tag --points-at HEAD | grep .)"
|
|
if git tag --points-at HEAD | grep .; then
|
|
echo "Tag found: $(git tag --points-at HEAD | grep .)"
|
|
export "VERSION=$(git tag --points-at HEAD | grep .)"
|
|
else
|
|
echo "No tag present — skipping."
|
|
exit 0
|
|
fi
|
|
|
|
# -----------------------------------------------
|
|
# Stage 2: Build on every PR
|
|
# -----------------------------------------------
|
|
build_cloudflared_macos: &build
|
|
stage: build
|
|
rules:
|
|
- when: never
|
|
tags:
|
|
- "macstadium-${RUNNER_ARCH}"
|
|
parallel:
|
|
matrix:
|
|
- RUNNER_ARCH: [arm, intel]
|
|
artifacts:
|
|
paths:
|
|
- artifacts/*
|
|
script:
|
|
- '[ "${RUNNER_ARCH}" = "arm" ] && export TARGET_ARCH=arm64'
|
|
- '[ "${RUNNER_ARCH}" = "intel" ] && export TARGET_ARCH=amd64'
|
|
- ARCH=$(uname -m)
|
|
- echo ARCH=$ARCH - TARGET_ARCH=$TARGET_ARCH
|
|
- ./.teamcity/mac/install-cloudflare-go.sh
|
|
- export PATH="/tmp/go/bin:$PATH"
|
|
- BUILD_SCRIPT=.teamcity/mac/build.sh
|
|
- if [[ ! -x ${BUILD_SCRIPT} ]] ; then exit ; fi
|
|
- set -euo pipefail
|
|
- echo "Executing ${BUILD_SCRIPT}"
|
|
- exec ${BUILD_SCRIPT}
|
|
|
|
# -----------------------------------------------
|
|
# Stage 2: Build and sign only on releases
|
|
# -----------------------------------------------
|
|
build_and_sign_cloudflared_macos:
|
|
<<: *build
|
|
extends: .check_tag
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "ggarcia/larry/gitlab-plus-macstadium-release-test"
|
|
when: always
|
|
- when: never
|
|
secrets:
|
|
APPLE_DEV_CA_CERT:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/apple_dev_ca_cert/data@kv
|
|
file: false
|
|
CFD_CODE_SIGN_CERT:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_codesign_cert/data@kv
|
|
file: false
|
|
CFD_CODE_SIGN_KEY:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_codesign_key/data@kv
|
|
file: false
|
|
CFD_CODE_SIGN_PASS:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_codesign_pass/data@kv
|
|
file: false
|
|
CFD_INSTALLER_CERT:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_installer_cert/data@kv
|
|
file: false
|
|
CFD_INSTALLER_KEY:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_installer_key/data@kv
|
|
file: false
|
|
CFD_INSTALLER_PASS:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_installer_pass/data@kv
|
|
file: false
|
|
|
|
# -----------------------------------------------
|
|
# Stage 3: Release to Github after building and signing
|
|
# -----------------------------------------------
|
|
release_cloudflared_macos_to_github:
|
|
stage: release
|
|
image: docker-registry.cfdata.org/stash/tun/docker-images/cloudflared-ci/main:6-8616fe631b76-amd64@sha256:96f4fd05e66cec03e0864c1bcf09324c130d4728eef45ee994716da499183614
|
|
extends: .check_tag
|
|
dependencies:
|
|
- build_and_sign_cloudflared_macos
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "ggarcia/larry/gitlab-plus-macstadium-release-test"
|
|
when: always
|
|
- when: never
|
|
cache:
|
|
paths:
|
|
- .cache/pip
|
|
variables:
|
|
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
KV_NAMESPACE: 380e19aa04314648949b6ad841417ebe
|
|
KV_ACCOUNT: 5ab4e9dfbd435d24068829fda0077963
|
|
secrets:
|
|
KV_API_TOKEN:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_kv_api_token/data@kv
|
|
file: false
|
|
API_KEY:
|
|
vault: gitlab/cloudflare/tun/cloudflared/_dev/cfd_github_api_key/data@kv
|
|
file: false
|
|
script:
|
|
- python3 --version ; pip --version # For debugging
|
|
- python3 -m venv venv
|
|
- source venv/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55
|
|
- echo $VERSION
|
|
- echo $TAG_EXISTS
|
|
- echo "Running release because tag exists."
|
|
- make macos-release
|