mirror of
https://git.freebsd.org/src.git
synced 2026-01-11 19:57:22 +00:00
As we have received an external box sponsored by NetActuate we can now enable the pre-commit tasks to be run in this box. Once we have enabled this debug if there are any errors and after confirmation we can enable this for other tasks too. Sponsored by: NetActuate Sponsored by: The FreeBSD Foundation Approved by: emaste, lwhsu Differential Revision: https://reviews.freebsd.org/D54220
221 lines
7.3 KiB
YAML
221 lines
7.3 KiB
YAML
|
|
compute_engine_instance:
|
|
# Image list available via
|
|
# gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images
|
|
platform: freebsd
|
|
image_project: freebsd-org-cloud-dev
|
|
image: freebsd-15-0-release-amd64-ufs
|
|
cpu: 8
|
|
memory: 8G
|
|
disk: 40
|
|
|
|
env:
|
|
PKG_LEVEL: 1
|
|
|
|
task:
|
|
matrix:
|
|
- name: amd64-llvm16 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: llvm16
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}-lite
|
|
- name: amd64-llvm17 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: llvm17
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}-lite
|
|
- name: amd64-llvm18 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: llvm18
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}-lite
|
|
- name: amd64-llvm19 World and kernel build and boot smoke test
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' || $CIRRUS_BRANCH =~ 'pull/.*'
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: llvm19
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}-lite
|
|
- name: arm64-llvm16 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: llvm16
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
- name: arm64-llvm17 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: llvm17
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
- name: arm64-llvm18 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: llvm18
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
- name: arm64-llvm19 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: llvm19
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
- name: amd64-gcc12 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: amd64-gcc12
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: amd64-gcc13 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: amd64-gcc13
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: amd64-gcc14 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: amd64-gcc14
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: aarch64-gcc12 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: aarch64-gcc12
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: aarch64-gcc13 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: aarch64-gcc13
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: aarch64-gcc14 World and kernel build and boot smoke test (manual)
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: aarch64-gcc14
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
- name: amd64-gcc14 World and kernel build and boot smoke test (FreeBSD repo)
|
|
only_if: $CIRRUS_REPO_FULL_NAME == 'freebsd/freebsd-src' && $CIRRUS_BRANCH =~ 'pull/.*'
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: amd64-gcc14
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}
|
|
EXTRA_MAKE_FLAGS: -s
|
|
timeout_in: 120m
|
|
install_script:
|
|
- sh .cirrus-ci/pkg-install.sh ${TOOLCHAIN_PKG} git-lite
|
|
|
|
setup_script:
|
|
- uname -a
|
|
- gpart show
|
|
- df -m
|
|
- pkg --version
|
|
- pw useradd -n user -m
|
|
- mkdir -p /usr/obj/$(pwd -P)
|
|
- chown user:user /usr/obj/$(pwd -P)
|
|
- su user -c "git config --global --add safe.directory $(pwd -P)"
|
|
|
|
build_world_script:
|
|
- su user -c "make -j$(nproc) ${EXTRA_MAKE_FLAGS} CROSS_TOOLCHAIN=${TOOLCHAIN} WITHOUT_TOOLCHAIN=yes buildworld"
|
|
|
|
build_kernel_script:
|
|
- su user -c "make -j$(nproc) CROSS_TOOLCHAIN=${TOOLCHAIN} WITHOUT_TOOLCHAIN=yes buildkernel"
|
|
|
|
package_script:
|
|
- su user -c "make -j$(nproc) CROSS_TOOLCHAIN=${TOOLCHAIN} WITHOUT_TOOLCHAIN=yes packages"
|
|
|
|
package_check_script:
|
|
- su user -c "/usr/libexec/flua tools/pkgbase/metalog_reader.lua -c /usr/obj/$(pwd -P)/${TARGET}.${TARGET_ARCH}/worldstage/METALOG"
|
|
|
|
test_script:
|
|
- sh .cirrus-ci/pkg-install.sh qemu-nox11
|
|
- sh tools/boot/ci-qemu-test.sh
|
|
|
|
make_sysent_script:
|
|
# Check that make sysent results were committed if required
|
|
- make sysent
|
|
- if ! git diff --exit-code; then printf "\n>>> Generated sysent files not updated, run make sysent <<<\n"; false; fi
|
|
|
|
include_ldirs_script:
|
|
# Check that includes/Makefile refers to existing directories
|
|
- if ! make -C include/ check-ldirs; then printf "\n>>> include/Makefile lists nonexistant directories <<<\n"; false; fi
|
|
|
|
makeman_script:
|
|
# Check that the committed src.conf.5 matches the one generated by
|
|
# tools/build/options/makeman (modulo the date which always updates)
|
|
# XXX: This script is slow so keep it last
|
|
- (make makeman 2> /tmp/makeman.out); cat /tmp/makeman.out
|
|
- if ! git diff --exit-code --ignore-matching-lines "^.Dd" share/man/man5/src.conf.5; then printf "\n>>> src.conf.5 was not updated as required <<<\n"; false; fi
|
|
- if grep -q "no description found" /tmp/makeman.out; then printf "\n>>> Missing description files <<<\n"; false; fi
|
|
|
|
post_script:
|
|
- df -m
|
|
- du -m -s /usr/obj
|
|
|
|
precommit_task:
|
|
persistent_worker:
|
|
labels:
|
|
jail: FreeBSD-src
|
|
matrix:
|
|
- name: amd64 smoke test using internal ci systems
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' || $CIRRUS_BRANCH =~ 'pull/.*'
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
- name: aarch64 smoke test using internal ci systems
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' || $CIRRUS_BRANCH =~ 'pull/.*'
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
timeout_in: 120m
|
|
|
|
setup_script:
|
|
- uname -a
|
|
- gpart show
|
|
- df -m
|
|
- pkg --version
|
|
|
|
ci_script:
|
|
- make -C tests/ci TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} CIENV=cirrus CITYPE=smoke ci
|
|
|
|
post_script:
|
|
- df -m
|
|
- du -m -s /usr/obj
|