mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-11 09:50:12 +00:00
24235654f1
Work is in progress to import Clang/LLVM 18 as the base system compiler. llvm18-lite is not yet in the quarterly package set but but will be available in the not too distant future, and is available for src forks that switch to latest packages. Add manual llvm18 jobs now so that they can be used for testing. Sponsored by: The FreeBSD Foundation
158 lines
5.3 KiB
YAML
158 lines
5.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-13-2-release-amd64
|
|
cpu: 8
|
|
memory: 8G
|
|
disk: 40
|
|
|
|
env:
|
|
PKG_FORMAT: tar
|
|
|
|
task:
|
|
matrix:
|
|
- name: amd64-llvm16 World and kernel build and boot smoke test
|
|
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
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' || $CIRRUS_BRANCH =~ 'pull/.*'
|
|
env:
|
|
TARGET: amd64
|
|
TARGET_ARCH: amd64
|
|
TOOLCHAIN: llvm17
|
|
TOOLCHAIN_PKG: ${TOOLCHAIN}-lite
|
|
- name: amd64-llvm18 World and kernel build and boot smoke test
|
|
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: arm64-llvm16 World and kernel build and boot smoke test
|
|
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
|
|
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
|
|
only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src'
|
|
trigger_type: manual
|
|
env:
|
|
TARGET: arm64
|
|
TARGET_ARCH: aarch64
|
|
TOOLCHAIN: llvm18
|
|
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: 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: amd64-gcc12 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-gcc12
|
|
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$(sysctl -n hw.ncpu) ${EXTRA_MAKE_FLAGS} CROSS_TOOLCHAIN=${TOOLCHAIN} WITHOUT_TOOLCHAIN=yes buildworld"
|
|
|
|
build_kernel_script:
|
|
- su user -c "make -j$(sysctl -n hw.ncpu) CROSS_TOOLCHAIN=${TOOLCHAIN} WITHOUT_TOOLCHAIN=yes buildkernel"
|
|
|
|
package_script:
|
|
- su user -c "make 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
|