From d61933c8987b31d804d385e4b98093ca12664d97 Mon Sep 17 00:00:00 2001 From: Martin Kinkelin Date: Tue, 19 Sep 2023 02:58:42 +0200 Subject: [PATCH] CI: Move non-coverage FreeBSD Cirrus CI jobs to GitHub Actions By running them in a qemu VM on Linux runners. --- .cirrus.yml | 17 -------- .github/workflows/main.yml | 83 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 17 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index fa1cb73325d2..c34e4d81369e 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -63,24 +63,7 @@ freebsd13_task: OS_NAME: freebsd CI_DFLAGS: -version=TARGET_FREEBSD13 matrix: - - TASK_NAME_TYPE: latest - TASK_NAME_TYPE: coverage << : *COVERAGE_ENVIRONMENT_TEMPLATE install_bash_script: pkg install -y bash << : *COMMON_STEPS_TEMPLATE - -freebsd12_task: - name: FreeBSD 12.3 x64, DMD (bootstrap) - freebsd_instance: - image_family: freebsd-12-3 - cpu: 4 - memory: 8G - timeout_in: 60m - environment: - OS_NAME: freebsd - HOST_DMD: dmd-2.095.0 - CI_DFLAGS: -version=TARGET_FREEBSD12 - install_bash_script: | - sed -i '' -e 's|pkg.FreeBSD.org|mirrors.xtom.com/freebsd-pkg|' /etc/pkg/FreeBSD.conf - pkg install -y bash - << : *COMMON_STEPS_TEMPLATE diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8536bc67bbf6..0341d8b2a301 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -115,3 +115,86 @@ jobs: - name: Upload coverage report if: matrix.coverage run: ci/run.sh codecov + + freebsd-vm: + strategy: + fail-fast: false + matrix: + include: + - job_name: FreeBSD 13.2 x64, DMD (latest) + freebsd_version: '13.2' + host_dmd: dmd + - job_name: FreeBSD 12.4 x64, DMD (bootstrap) + freebsd_version: '12.4' + host_dmd: dmd-2.095.0 + name: ${{ matrix.job_name }} + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 50 + - name: Run in qemu VM + uses: cross-platform-actions/action@v0.19.0 + with: + operating_system: freebsd + version: ${{ matrix.freebsd_version }} + shell: bash + run: | + set -uexo pipefail + + freebsd_version='${{ matrix.freebsd_version }}' + freebsd_major="${freebsd_version:0:2}" + + export OS_NAME=freebsd + export MODEL=64 + export HOST_DMD='${{ matrix.host_dmd }}' + export N=2 + export FULL_BUILD=true + export CI_DFLAGS="-version=TARGET_FREEBSD${freebsd_major}" + + #if [[ "$freebsd_major" == 12 ]]; then + # sudo sed -i '' -e 's|pkg.FreeBSD.org|mirrors.xtom.com/freebsd-pkg|' /etc/pkg/FreeBSD.conf + #fi + + bash --version + + echo '::group::Install prerequisites' + sudo -E ci/cirrusci.sh + echo '::endgroup::' + + echo '::group::Install host compiler' + ci/run.sh install_host_compiler + echo '::endgroup::' + + echo '::group::Set up repos' + ln -s "$PWD" ../dmd + + ref='${{ github.ref }}' + if [[ "$ref" =~ ^refs/pull/ ]]; then + REPO_BRANCH="$GITHUB_BASE_REF" + elif [[ "$ref" =~ ^refs/(heads|tags)/(.*)$ ]]; then + REPO_BRANCH="${BASH_REMATCH[2]}" + else + echo "Error: unexpected GitHub ref '$ref'" >&2 + exit 1 + fi + + ci/run.sh setup_repos "$REPO_BRANCH" + echo '::endgroup::' + + echo '::group::Build' + ci/run.sh build + echo '::endgroup::' + + echo '::group::Test dmd' + ci/run.sh test_dmd + echo '::endgroup::' + + echo '::group::Test druntime' + ci/run.sh test_druntime + echo '::endgroup::' + + echo '::group::Test phobos' + ci/run.sh test_phobos + echo '::endgroup::'