# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions name: Bootstrap on: pull_request: branches: - stable push: branches: - master - stable 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: Build with dmd-${{ matrix.version }} runs-on: ubuntu-22.04 timeout-minutes: 10 env: # for ci/run.sh: OS_NAME: linux MODEL: 64 HOST_DMD: dmd-${{ matrix.version }} # N is set dynamically below FULL_BUILD: true 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 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 dmd run: ENABLE_RELEASE=0 ENABLE_DEBUG=0 ci/run.sh build 0 - name: Rebuild dmd run: ENABLE_RELEASE=0 ENABLE_DEBUG=0 ci/run.sh rebuild