From 3c23b5a4ee022b726b17e8eb45e3d305fe817f23 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Fri, 31 May 2024 17:56:31 +0200 Subject: [PATCH] GHA: Add workflow for testing bootstrap with every release from D 2.076.1 --- .github/workflows/bootstrap.yml | 74 +++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/bootstrap.yml diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml new file mode 100644 index 000000000000..0397079a9e9c --- /dev/null +++ b/.github/workflows/bootstrap.yml @@ -0,0 +1,74 @@ +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions + +name: Bootstrap +on: + - pull_request # without merge conflicts + - push # branch or tag + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + main: + strategy: + fail-fast: false + matrix: + version: [ + 2.076.1, 2.077.1, 2.078.3, 2.079.1, + 2.080.1, 2.081.2, 2.082.1, 2.083.1, 2.084.1, 2.085.1, 2.086.1, 2.087.1, 2.088.1, 2.089.1, + 2.090.1, 2.091.1, 2.092.1, 2.093.1, 2.094.2, 2.095.1, 2.096.1. 2.097.2, 2.098.1, 2.099.1, + 2.100.2, 2.101.2, 2.102.2, 2.103.1, 2.104.2, 2.105.3, 2.106.1, 2.107.1 + ] + + name: Bootstrap ${{ matrix.version }} + runs-on: ubuntu-22.04 + timeout-minutes: 40 + env: + # for ci/run.sh: + OS_NAME: linux + MODEL: 64 + HOST_DMD: dmd-${{ matrix.version }} + # N is set dynamically below + FULL_BUILD: false + defaults: + run: + shell: bash + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 50 + + - name: Set environment variable N (parallelism) + run: echo "N=$(nproc)" >> $GITHUB_ENV + + - name: Install prerequisites + run: sudo -E ci/cirrusci.sh + + - name: Install host compiler + run: ci/run.sh install_host_compiler + + - name: Set up repos + run: | + set -uexo pipefail + ref='${{ github.ref }}' + if [[ "$ref" =~ ^refs/pull/ ]]; then + # PR: clone the Phobos head with the same name as this DMD PR's target branch + # e.g., Phobos stable when targeting DMD stable + REPO_BRANCH="$GITHUB_BASE_REF" + elif [[ "$ref" =~ ^refs/(heads|tags)/(.*)$ ]]; then + # no PR: try to clone the Phobos head with the same name as this DMD head, falling back to master + # e.g., Phobos stable for a push to DMD stable, or Phobos v2.105.2 for DMD tag v2.105.2 + REPO_BRANCH="${BASH_REMATCH[2]}" + else + echo "Error: unexpected GitHub ref '$ref'" >&2 + exit 1 + fi + ci/run.sh setup_repos "$REPO_BRANCH" + + - name: Build + run: ENABLE_DEBUG=0 ci/run.sh build + + - name: Rebuild dmd + run: ENABLE_DEBUG=0 ci/run.sh rebuild