Replace scattered state guards with a trait-based state machine #149
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: PR | |
| on: | |
| pull_request: | |
| paths: | |
| - '**' | |
| - '!**/*.md' | |
| - '!**/*.yml' | |
| - '!**/*.yaml' | |
| - '.github/workflows/pr.yml' | |
| concurrency: | |
| group: pr-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| packages: read | |
| jobs: | |
| lint: | |
| name: Lint Pony code | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-standard-builder:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Lint | |
| run: make lint | |
| test-libressl-3-vs-ponyc-release: | |
| name: LibreSSL 3.x with most recent ponyc release | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder-with-libressl-3.9.2:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Test | |
| run: make test config=debug ssl=libressl | |
| test-libressl-4-vs-ponyc-release: | |
| name: LibreSSL 4.x with most recent ponyc release | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-standard-builder-with-libressl-4.2.1:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Test | |
| run: make test config=debug ssl=libressl | |
| test-openssl-1-vs-ponyc-release: | |
| name: OpenSSL 1.x with most recent ponyc release | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_1.1.1w:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Test | |
| run: make test config=debug ssl=1.1.x | |
| test-openssl-3-vs-ponyc-release: | |
| name: OpenSSL 3.x with most recent ponyc release | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-standard-builder-with-openssl-3.6.2:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Test | |
| run: make test config=debug ssl=3.0.x | |
| test-openssl-4-vs-ponyc-release: | |
| name: OpenSSL 4.x with most recent ponyc release | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/ponylang/shared-docker-ci-standard-builder-with-openssl-4.0.0:release | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Test | |
| run: make test config=debug ssl=4.0.x | |
| test-x86-64-windows-vs-ponyc-release: | |
| name: Windows x86-64 (LibreSSL) with most recent ponyc release | |
| runs-on: windows-2025-vs2026 | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Cache LibreSSL libs | |
| id: cache-libressl | |
| uses: actions/cache@v5.0.3 | |
| with: | |
| path: | | |
| ssl.lib | |
| crypto.lib | |
| tls.lib | |
| key: libressl-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.ci-scripts/windows-install-libressl.ps1') }} | |
| - name: Install LibreSSL | |
| if: steps.cache-libressl.outputs.cache-hit != 'true' | |
| run: .ci-scripts\windows-install-libressl.ps1 | |
| - name: Test with most recent ponyc release | |
| run: | | |
| Invoke-WebRequest https://dl.cloudsmith.io/public/ponylang/releases/raw/versions/latest/ponyc-x86-64-pc-windows-msvc.zip -OutFile C:\ponyc.zip; | |
| Expand-Archive -Force -Path C:\ponyc.zip -DestinationPath C:\ponyc; | |
| Invoke-WebRequest https://dl.cloudsmith.io/public/ponylang/releases/raw/versions/latest/corral-x86-64-pc-windows-msvc.zip -OutFile C:\corral.zip; | |
| Expand-Archive -Force -Path C:\corral.zip -DestinationPath C:\ponyc; | |
| $env:PATH = 'C:\ponyc\bin;' + $env:PATH; | |
| .\make.ps1 -Command test 2>&1; | |
| .\make.ps1 -Command examples 2>&1; | |
| test-arm64-windows-vs-ponyc-release: | |
| name: Windows arm64 (LibreSSL) with most recent ponyc release | |
| runs-on: windows-11-arm | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Cache LibreSSL libs | |
| id: cache-libressl | |
| uses: actions/cache@v5.0.3 | |
| with: | |
| path: | | |
| ssl.lib | |
| crypto.lib | |
| tls.lib | |
| key: libressl-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.ci-scripts/windows-install-libressl.ps1') }} | |
| - name: Install LibreSSL | |
| if: steps.cache-libressl.outputs.cache-hit != 'true' | |
| run: .ci-scripts\windows-install-libressl.ps1 | |
| - name: Test with most recent ponyc release | |
| run: | | |
| Invoke-WebRequest https://dl.cloudsmith.io/public/ponylang/releases/raw/versions/latest/ponyc-arm64-pc-windows-msvc.zip -OutFile C:\ponyc.zip; | |
| Expand-Archive -Force -Path C:\ponyc.zip -DestinationPath C:\ponyc; | |
| Invoke-WebRequest https://dl.cloudsmith.io/public/ponylang/releases/raw/versions/latest/corral-arm64-pc-windows-msvc.zip -OutFile C:\corral.zip; | |
| Expand-Archive -Force -Path C:\corral.zip -DestinationPath C:\ponyc; | |
| $env:PATH = 'C:\ponyc\bin;' + $env:PATH; | |
| .\make.ps1 -Command test 2>&1; | |
| .\make.ps1 -Command examples 2>&1; |