256 lines
6.9 KiB
YAML
256 lines
6.9 KiB
YAML
pinned_go: &pinned_go go-boring=1.22.5-1
|
|
|
|
build_dir: &build_dir /cfsetup_build
|
|
default-flavor: bookworm
|
|
|
|
bullseye: &bullseye
|
|
build-linux:
|
|
build_dir: *build_dir
|
|
builddeps: &build_deps
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
- rpm
|
|
- libffi-dev
|
|
pre-cache: &build_pre_cache
|
|
- export GOCACHE=/cfsetup_build/.cache/go-build
|
|
- go install golang.org/x/tools/cmd/goimports@latest
|
|
post-cache:
|
|
# Build binary for component test
|
|
- GOOS=linux GOARCH=amd64 make cloudflared
|
|
build-linux-fips:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deps
|
|
pre-cache: *build_pre_cache
|
|
post-cache:
|
|
- export FIPS=true
|
|
# Build binary for component test
|
|
- GOOS=linux GOARCH=amd64 make cloudflared
|
|
cover:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deps
|
|
pre-cache: *build_pre_cache
|
|
post-cache:
|
|
- make cover
|
|
# except FIPS and macos
|
|
build-linux-release:
|
|
build_dir: *build_dir
|
|
builddeps: &build_deps_release
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
- rpm
|
|
- libffi-dev
|
|
- python3-dev
|
|
- python3-pip
|
|
- python3-setuptools
|
|
- wget
|
|
- python3-venv
|
|
post-cache:
|
|
- python3 -m venv env
|
|
- . /cfsetup_build/env/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55 boto3==1.22.9 python-gnupg==0.4.9
|
|
# build all packages (except macos and FIPS) and move them to /cfsetup/built_artifacts
|
|
- ./build-packages.sh
|
|
# handle FIPS separately so that we built with gofips compiler
|
|
build-linux-fips-release:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deps_release
|
|
post-cache:
|
|
# same logic as above, but for FIPS packages only
|
|
- ./build-packages-fips.sh
|
|
generate-versions-file:
|
|
build_dir: *build_dir
|
|
builddeps:
|
|
- *pinned_go
|
|
- build-essential
|
|
post-cache:
|
|
- make generate-docker-version
|
|
build-deb:
|
|
build_dir: *build_dir
|
|
builddeps: &build_deb_deps
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=amd64
|
|
- make cloudflared-deb
|
|
build-fips-internal-deb:
|
|
build_dir: *build_dir
|
|
builddeps: &build_fips_deb_deps
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=amd64
|
|
- export FIPS=true
|
|
- export ORIGINAL_NAME=true
|
|
- make cloudflared-deb
|
|
build-internal-deb-nightly-amd64:
|
|
build_dir: *build_dir
|
|
builddeps: *build_fips_deb_deps
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=amd64
|
|
- export NIGHTLY=true
|
|
- export FIPS=true
|
|
- export ORIGINAL_NAME=true
|
|
- make cloudflared-deb
|
|
build-internal-deb-nightly-arm64:
|
|
build_dir: *build_dir
|
|
builddeps: *build_fips_deb_deps
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=arm64
|
|
- export NIGHTLY=true
|
|
# - export FIPS=true # TUN-7595
|
|
- export ORIGINAL_NAME=true
|
|
- make cloudflared-deb
|
|
build-deb-arm64:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deb_deps
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=arm64
|
|
- make cloudflared-deb
|
|
package-windows:
|
|
build_dir: *build_dir
|
|
builddeps:
|
|
- *pinned_go
|
|
- build-essential
|
|
- python3-dev
|
|
- libffi-dev
|
|
- python3-setuptools
|
|
- python3-pip
|
|
- wget
|
|
# libmsi and libgcab are libraries the wixl binary depends on.
|
|
- libmsi-dev
|
|
- libgcab-dev
|
|
- python3-venv
|
|
pre-cache:
|
|
- wget https://github.com/sudarshan-reddy/msitools/releases/download/v0.101b/wixl -P /usr/local/bin
|
|
- chmod a+x /usr/local/bin/wixl
|
|
post-cache:
|
|
- python3 -m venv env
|
|
- . env/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55
|
|
- .teamcity/package-windows.sh
|
|
test:
|
|
build_dir: *build_dir
|
|
builddeps: &build_deps_tests
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
- rpm
|
|
- libffi-dev
|
|
- gotest-to-teamcity
|
|
pre-cache: *build_pre_cache
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=amd64
|
|
- export PATH="$HOME/go/bin:$PATH"
|
|
- ./fmt-check.sh
|
|
- make test | gotest-to-teamcity
|
|
test-fips:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deps_tests
|
|
pre-cache: *build_pre_cache
|
|
post-cache:
|
|
- export GOOS=linux
|
|
- export GOARCH=amd64
|
|
- export FIPS=true
|
|
- export PATH="$HOME/go/bin:$PATH"
|
|
- ./fmt-check.sh
|
|
- make test | gotest-to-teamcity
|
|
component-test:
|
|
build_dir: *build_dir
|
|
builddeps: &build_deps_component_test
|
|
- *pinned_go
|
|
- python3
|
|
- python3-pip
|
|
- python3-setuptools
|
|
# procps installs the ps command which is needed in test_sysv_service
|
|
# because the init script uses ps pid to determine if the agent is
|
|
# running
|
|
- procps
|
|
- python3-venv
|
|
pre-cache-copy-paths:
|
|
- component-tests/requirements.txt
|
|
post-cache: &component_test_post_cache
|
|
- python3 -m venv env
|
|
- . env/bin/activate
|
|
- pip install --upgrade -r component-tests/requirements.txt
|
|
# Creates and routes a Named Tunnel for this build. Also constructs
|
|
# config file from env vars.
|
|
- python3 component-tests/setup.py --type create
|
|
- pytest component-tests -o log_cli=true --log-cli-level=INFO
|
|
# The Named Tunnel is deleted and its route unprovisioned here.
|
|
- python3 component-tests/setup.py --type cleanup
|
|
component-test-fips:
|
|
build_dir: *build_dir
|
|
builddeps: *build_deps_component_test
|
|
pre-cache-copy-paths:
|
|
- component-tests/requirements.txt
|
|
post-cache: *component_test_post_cache
|
|
github-release-dryrun:
|
|
build_dir: *build_dir
|
|
builddeps:
|
|
- *pinned_go
|
|
- build-essential
|
|
- python3-dev
|
|
- libffi-dev
|
|
- python3-setuptools
|
|
- python3-pip
|
|
- python3-venv
|
|
post-cache:
|
|
- python3 -m venv env
|
|
- . env/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55
|
|
- make github-release-dryrun
|
|
github-release:
|
|
build_dir: *build_dir
|
|
builddeps:
|
|
- *pinned_go
|
|
- build-essential
|
|
- python3-dev
|
|
- libffi-dev
|
|
- python3-setuptools
|
|
- python3-pip
|
|
- python3-venv
|
|
post-cache:
|
|
- python3 -m venv env
|
|
- . env/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55
|
|
- make github-release
|
|
r2-linux-release:
|
|
build_dir: *build_dir
|
|
builddeps:
|
|
- *pinned_go
|
|
- build-essential
|
|
- fakeroot
|
|
- rubygem-fpm
|
|
- rpm
|
|
- wget
|
|
- python3-dev
|
|
- libffi-dev
|
|
- python3-setuptools
|
|
- python3-pip
|
|
- reprepro
|
|
- createrepo-c
|
|
- python3-venv
|
|
post-cache:
|
|
- python3 -m venv env
|
|
- . env/bin/activate
|
|
- pip install pynacl==1.4.0 pygithub==1.55 boto3==1.22.9 python-gnupg==0.4.9
|
|
- make r2-linux-release
|
|
|
|
bookworm: *bullseye
|
|
trixie: *bullseye
|