bottom/.cirrus.yml
Clement Tsang 1a715206be
ci: try using GHA instead of Cirrus for FreeBSD in basic CI (#1577)
Ideally we minimize our usage of Cirrus CI, especially for typical PR CI workflows, since it's a bit cludgy to work with. This method is also more extendable to things like OpenBSD.

Fine for deploys I guess since that's not super frequent and at this point I have that working fairly well when automated + I don't usually have to wait for it.
2024-09-03 08:33:13 +00:00

87 lines
2.6 KiB
YAML

%YAML 1.1
---
# Configuration for CirrusCI. This is primarily used for testing and building FreeBSD and old versions of Linux,
# since other CI platforms don't support build jobs for these configurations.
#
# Note that we set the YAML directive above to prevent some linting errors around the templates.
setup_template: &SETUP_TEMPLATE
setup_script:
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs --output rustup.sh
- sh rustup.sh --default-toolchain stable -y
cache_template: &CACHE_TEMPLATE
registry_cache:
folder: $HOME/.cargo/registry
reupload_on_changes: "true"
fingerprint_script:
- $HOME/.cargo/bin/rustc --version
- cat Cargo.lock
- echo $CIRRUS_OS
- echo $CIRRUS_TASK_NAME
target_cache:
folder: target
reupload_on_changes: "true"
fingerprint_script:
- $HOME/.cargo/bin/rustc --version
- cat Cargo.lock
- echo $CIRRUS_OS
- echo $CIRRUS_TASK_NAME
cleanup_template: &CLEANUP_TEMPLATE
before_cache_script:
- rm -rf $HOME/.cargo/registry/index
- rm -rf $HOME/.cargo/registry/src
- rm -f ./target/.rustc_info.json
env:
CARGO_INCREMENTAL: "0"
CARGO_PROFILE_DEV_DEBUG: "0"
CARGO_HUSKY_DONT_INSTALL_HOOKS: "true"
release_task:
auto_cancellation: "false"
only_if: $CIRRUS_BUILD_SOURCE == "api" && $BTM_BUILD_RELEASE_CALLER == "ci"
timeout_in: "30m"
env:
BTM_GENERATE: "true"
COMPLETION_DIR: "target/tmp/bottom/completion/"
MANPAGE_DIR: "target/tmp/bottom/manpage/"
# -PLACEHOLDER FOR CI-
matrix:
- name: "FreeBSD 14 Build"
alias: "freebsd_14_0_build"
freebsd_instance:
image_family: freebsd-14-0
env:
TARGET: "x86_64-unknown-freebsd"
NAME: "x86_64-unknown-freebsd-14-0"
- name: "FreeBSD 13 Build"
alias: "freebsd_13_3_build"
freebsd_instance:
image_family: freebsd-13-3
env:
TARGET: "x86_64-unknown-freebsd"
NAME: "x86_64-unknown-freebsd-13-3"
- name: "Legacy Linux (2.17)"
alias: "linux_2_17_build"
container:
image: quay.io/pypa/manylinux2014_x86_64
env:
TARGET: "x86_64-unknown-linux-gnu"
NAME: "x86_64-unknown-linux-gnu-2-17"
<<: *SETUP_TEMPLATE
<<: *CACHE_TEMPLATE
build_script:
- . $HOME/.cargo/env
- cargo build --release --verbose --locked --features deploy
- mv ./target/release/btm ./
- ./btm -V
- mv "$COMPLETION_DIR" completion
- mv "$MANPAGE_DIR" manpage
- tar -czvf bottom_$NAME.tar.gz btm completion
binaries_artifacts:
path: bottom_$NAME.tar.gz
<<: *CLEANUP_TEMPLATE