123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- pinned_go: &pinned_go go-boring=1.22.5-1
- build_dir: &build_dir /cfsetup_build
- default-flavor: bullseye
- buster: &buster
- 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
- - pip3 install pynacl==1.4.0
- - pip3 install pygithub==1.55
- - pip3 install boto3==1.22.9
- - pip3 install 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.7
- - 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
- - sudo pip3 install --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:
- - pip3 install pynacl==1.4.0
- - pip3 install 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:
- - pip3 install pynacl==1.4.0
- - pip3 install 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:
- - pip3 install pynacl==1.4.0
- - pip3 install pygithub==1.55
- - pip3 install boto3==1.22.9
- - pip3 install python-gnupg==0.4.9
- post-cache:
- - make r2-linux-release
- bullseye: *buster
- bookworm: *buster
|