Fix non-sendable data seen as sendable in generic recover blocks #79
Workflow file for this run
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: ponyc | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| paths: | |
| - '**' | |
| - '!tools/**' | |
| - '!**/*.md' | |
| - '!**/*.yml' | |
| - '!.dockerfiles/**' | |
| - '!.ci-dockerfiles/**' | |
| - '.github/workflows/pr-ponyc.yml' | |
| concurrency: | |
| group: pr-ponyc-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| packages: read | |
| jobs: | |
| x86_64-linux: | |
| if: github.event.pull_request.draft == false | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20250115 | |
| name: x86-64 Linux glibc | |
| debugger: lldb | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.23-builder:20260201 | |
| name: x86-64 Linux musl | |
| debugger: lldb | |
| name: ${{ matrix.name }} | |
| container: | |
| image: ${{ matrix.image }} | |
| options: --user pony --cap-add=SYS_PTRACE --security-opt seccomp=unconfined | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Build Debug Runtime | |
| run: | | |
| make configure arch=x86-64 config=debug | |
| make build config=debug | |
| - name: Test with Debug Runtime | |
| run: make test-ci-core config=debug usedebugger='${{ matrix.debugger }}' | |
| - name: Build Release Runtime | |
| run: | | |
| make configure arch=x86-64 config=release | |
| make build config=release | |
| - name: Test with Release Runtime | |
| run: make test-ci-core config=release usedebugger='${{ matrix.debugger }}' | |
| # Currently, Github actions supplied by GH like checkout and cache do not work | |
| # in musl libc environments on arm64. We can work around this by running | |
| # those actions on the host and then "manually" doing our work that would | |
| # normally be done "in the musl container" by starting the container ourselves | |
| # for various steps by invoking docker directly. | |
| # | |
| # This is not in line with our standard pattern of "just do it all in the | |
| # container" but is required to work around the GitHub actions limitation | |
| # documented above. | |
| arm64-linux: | |
| if: github.event.pull_request.draft == false | |
| runs-on: ubuntu-24.04-arm | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - image: ghcr.io/ponylang/ponyc-ci-arm64-unknown-linux-ubuntu24.04-builder:20250510 | |
| name: arm64 Linux glibc | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.23-builder:20260201 | |
| name: arm64 Linux musl | |
| name: ${{ matrix.name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Pull Docker image | |
| run: docker pull ${{ matrix.image }} | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| make libs build_flags=-j8 | |
| - name: Build Debug Runtime | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| bash -c "make configure arch=armv8-a config=debug && make build config=debug" | |
| - name: Test with Debug Runtime | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| --cap-add=SYS_PTRACE \ | |
| --security-opt seccomp=unconfined \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| make test-ci-core config=debug | |
| - name: Build Release Runtime | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| bash -c "make configure arch=armv8-a config=release && make build config=release" | |
| - name: Test with Release Runtime | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| --cap-add=SYS_PTRACE \ | |
| --security-opt seccomp=unconfined \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| make test-ci-core config=release | |
| x86_64-macos: | |
| if: github.event.pull_request.draft == false | |
| runs-on: macos-15-intel | |
| name: x86-64 Apple Darwin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-x86-macos-15-intel-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Build Debug Runtime | |
| run: | | |
| make configure arch=x86-64 config=debug | |
| make build config=debug | |
| - name: Test with Debug Runtime | |
| run: make test-ci-core config=debug test_full_program_timeout=180 | |
| - name: Build Release Runtime | |
| run: | | |
| make configure arch=x86-64 config=release | |
| make build config=release | |
| - name: Test with Release Runtime | |
| run: make test-ci-core config=release test_full_program_timeout=180 | |
| arm64-macos: | |
| if: github.event.pull_request.draft == false | |
| runs-on: macos-15 | |
| name: arm64 Apple Darwin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-arm64-macos-15-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Build Debug Runtime | |
| run: | | |
| make configure arch=armv8 config=debug | |
| make build config=debug | |
| - name: Test with Debug Runtime | |
| run: make test-ci-core config=debug | |
| - name: Build Release Runtime | |
| run: | | |
| make configure arch=armv8 config=release | |
| make build config=release | |
| - name: Test with Release Runtime | |
| run: make test-ci-core config=release | |
| x86_64-windows: | |
| if: github.event.pull_request.draft == false | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: pwsh | |
| name: x86-64 Windows MSVC | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Install Dependencies | |
| run: | | |
| function msys() { C:\msys64\usr\bin\bash.exe @('-lc') + @Args }; msys ' '; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-lldb'; msys 'pacman --noconfirm -Scc' | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-windows-2025-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: .\make.ps1 -Command libs | |
| - name: Build Debug Runtime | |
| run: | | |
| .\make.ps1 -Command configure -Config Debug | |
| .\make.ps1 -Command build -Config Debug | |
| - name: Test with Debug Runtime | |
| run: .\make.ps1 -Command test -Config Debug -Uselldb yes | |
| - name: Build Release Runtime | |
| run: | | |
| .\make.ps1 -Command configure -Config Release | |
| .\make.ps1 -Command build -Config Release | |
| - name: Test with Release Runtime | |
| run: .\make.ps1 -Command test -Config Release -Uselldb yes | |
| - name: Build examples | |
| run: .\make.ps1 -Command build-examples | |
| arm64-windows: | |
| if: github.event.pull_request.draft == false | |
| runs-on: windows-11-arm | |
| defaults: | |
| run: | |
| shell: pwsh | |
| name: arm64 Windows MSVC | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.1.1 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: build/libs | |
| key: libs-windows-11-arm-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: .\make.ps1 -Command libs -Arch ARM64 | |
| - name: Build Debug Runtime | |
| run: | | |
| .\make.ps1 -Command configure -Config Debug -Arch ARM64 | |
| .\make.ps1 -Command build -Config Debug | |
| - name: Test with Debug Runtime | |
| run: .\make.ps1 -Command test -Config Debug | |
| - name: Build Release Runtime | |
| run: | | |
| .\make.ps1 -Command configure -Config Release -Arch ARM64 | |
| .\make.ps1 -Command build -Config Release | |
| - name: Test with Release Runtime | |
| run: .\make.ps1 -Command test -Config Release | |
| - name: Build examples | |
| run: .\make.ps1 -Command build-examples | |