Use the latest LLVM (21.1.8), keeping Windows on 15 #881
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: '*' | |
| tags: v* | |
| pull_request: | |
| branches: | |
| - master | |
| # schedule: | |
| # - cron: 0 0 * * * | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| test: | |
| name: Test ${{ matrix.data.os.target_triple }} ${{ matrix.compiler }} | |
| runs-on: ${{ matrix.data.os.host }} | |
| continue-on-error: ${{ matrix.nightly == 'nightly' }} | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x86_64] | |
| data: | |
| - os: | |
| host: ubuntu-latest | |
| target_triple: x86_64-alpine-linux-musl | |
| docker: true | |
| - os: | |
| host: macos-26-intel | |
| target_triple: x86_64-apple-macos10.9 | |
| - os: | |
| host: windows-latest | |
| target_triple: x86_64-pc-windows-msvc | |
| # libclang 21 breaks the Windows build: DMD fails to link | |
| # LLVMSupport against the C runtime, and an include-order unit test | |
| # differs under LDC. Keep Windows on 15 until those are resolved. | |
| llvm: '15.0.7' | |
| - os: | |
| target: freebsd | |
| version: '13.1' | |
| target_triple: x86_64-unknown-freebsd13.1 | |
| host: ubuntu-latest | |
| cross_platform_actions: true | |
| compiler: | |
| - ldc-latest | |
| llvm: | |
| - '21.1.8' | |
| include: | |
| - compiler: dmd-latest | |
| llvm: '15.0.7' | |
| arch: x86_64 | |
| data: | |
| os: | |
| host: windows-latest | |
| target_triple: x86_64-pc-windows-msvc | |
| - compiler: dmd-beta | |
| llvm: '15.0.7' | |
| arch: x86_64 | |
| nightly: nightly | |
| data: | |
| os: | |
| host: windows-latest | |
| target_triple: x86_64-pc-windows-msvc | |
| - compiler: ldc-beta | |
| llvm: '21.1.8' | |
| arch: x86_64 | |
| data: | |
| os: | |
| host: ubuntu-latest | |
| target_triple: x86_64-alpine-linux-musl | |
| docker: true | |
| - compiler: dmd-master | |
| llvm: '15.0.7' | |
| arch: x86_64 | |
| nightly: nightly | |
| data: | |
| os: | |
| host: windows-latest | |
| target_triple: x86_64-pc-windows-msvc | |
| # - compiler: dmd-latest | |
| # llvm: '15.0.7' | |
| # arch: x86 | |
| # data: | |
| # os: | |
| # host: windows-latest | |
| # target_triple: x86-pc-windows-msvc | |
| steps: | |
| - name: Clone Repository | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| - name: test | |
| uses: ./.github/workflows/support/build | |
| with: | |
| action: test | |
| arch: ${{ matrix.arch }} | |
| docker_arch: ${{ matrix.docker_arch }} | |
| target_operating_system: ${{ matrix.data.os.target }} | |
| target_version: ${{ matrix.data.os.version }} | |
| llvm: ${{ matrix.data.llvm || matrix.llvm }} | |
| target_triple: ${{ matrix.data.os.target_triple }} | |
| cross_platform_actions: ${{ matrix.data.cross_platform_actions }} | |
| docker: ${{ matrix.data.docker }} | |
| compiler: ${{ matrix.compiler }} | |
| create_release: | |
| name: Create Release ${{ matrix.data.os.target_triple }} | |
| needs: test | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| runs-on: ${{ matrix.data.os.host }} | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x86_64] | |
| data: | |
| - os: | |
| host: ubuntu-latest | |
| target_triple: x86_64-alpine-linux-musl | |
| docker: true | |
| release_platform: linux-x86_64 | |
| - os: | |
| host: macos-26-intel | |
| target_triple: x86_64-apple-macos10.9 | |
| release_platform: macos-x86_64 | |
| - os: | |
| host: windows-latest | |
| target_triple: x86_64-pc-windows-msvc | |
| llvm: '15.0.7' | |
| release_platform: windows-x64 | |
| - os: | |
| target: freebsd | |
| version: '13.1' | |
| target_triple: x86_64-unknown-freebsd13.1 | |
| host: ubuntu-latest | |
| cross_platform_actions: true | |
| release_platform: freebsd13.1-x86_64 | |
| compiler: | |
| - ldc-latest | |
| llvm: | |
| - '21.1.8' | |
| # include: | |
| # - compiler: ldc-latest | |
| # llvm: '15.0.7' | |
| # arch: x86 | |
| # data: | |
| # os: | |
| # host: windows-latest | |
| # target_triple: x86-pc-windows-msvc | |
| # release_platform: windows-x86 | |
| steps: | |
| - name: Clone Repository | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| - name: Build Release | |
| uses: ./.github/workflows/support/build | |
| with: | |
| action: release | |
| arch: ${{ matrix.arch }} | |
| docker_arch: ${{ matrix.docker_arch }} | |
| target_operating_system: ${{ matrix.data.os.target }} | |
| target_version: ${{ matrix.data.os.version }} | |
| llvm: ${{ matrix.data.llvm || matrix.llvm }} | |
| target_triple: ${{ matrix.data.os.target_triple }} | |
| cross_platform_actions: ${{ matrix.data.cross_platform_actions }} | |
| docker: ${{ matrix.data.docker }} | |
| compiler: ${{ matrix.compiler }} | |
| release_platform: ${{ matrix.data.release_platform }} | |
| - name: Extract Version | |
| id: version | |
| run: echo version="${GITHUB_REF#refs/tags/v}" >> "$GITHUB_OUTPUT" | |
| - name: Extract changelog | |
| if: runner.os == 'Linux' | |
| uses: sean0x42/markdown-extract@v2 | |
| id: extract_changelog | |
| with: | |
| file: changelog.md | |
| pattern: '\[${{ steps.version.outputs.version }}\].+' | |
| no-print-matched-heading: true | |
| - name: Create release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: DStep ${{ steps.version.outputs.version }} | |
| draft: true | |
| body: ${{ steps.extract_changelog.outputs.markdown }} | |
| files: | | |
| dstep*.tar.xz | |
| dstep*.7z | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |