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 pre-cache: &build_release_pre_cache - python3 -m pip install pynacl==1.4.0 pygithub==1.55 boto3==1.22.9 python-gnupg==0.4.9 post-cache: # 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 pre-cache: *build_release_pre_cache 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 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 - pip3 install pynacl==1.4.0 - pip3 install pygithub==1.55 post-cache: - .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 pre-cache-copy-paths: - component-tests/requirements.txt pre-cache: &component_test_pre_cache - python3 -m pip install --break-system-packages --upgrade -r component-tests/requirements.txt post-cache: &component_test_post_cache # 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 pre-cache: *component_test_pre_cache 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 pre-cache: - python3 -m pip install pynacl==1.4.0 pygithub==1.55 post-cache: - make github-release-dryrun github-release: build_dir: *build_dir builddeps: - *pinned_go - build-essential - python3-dev - libffi-dev - python3-setuptools - python3-pip pre-cache: - python3 -m pip install pynacl==1.4.0 pygithub==1.55 post-cache: - 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 pre-cache: - python3 -m pip install pynacl==1.4.0 pygithub==1.55 boto3==1.22.9 python-gnupg==0.4.9 post-cache: - make r2-linux-release bookworm: *bullseye trixie: *bullseye