Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions .github/workflows/auto-opt-app-patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false

Expand Down Expand Up @@ -137,12 +137,10 @@ jobs:

- name: Install Rust toolchain
if: steps.relevance.outputs.run == 'true'
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- uses: Swatinem/rust-cache@v2
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
if: steps.relevance.outputs.run == 'true'
with:
shared-key: "${{ runner.os }}-perry"
Expand All @@ -156,7 +154,7 @@ jobs:

- name: Setup Node oracle
if: steps.relevance.outputs.run == 'true'
uses: actions/setup-node@v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
# Single source of truth: .node-version. Every kernel's stdout is
# diffed against this node, so the pin is a correctness input.
Expand Down
36 changes: 15 additions & 21 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,17 @@ jobs:
outputs:
status: ${{ steps.compare.outputs.status }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
# Need history to compare against previous commits on main
fetch-depth: 2

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand All @@ -63,7 +61,7 @@ jobs:
restore-keys: ${{ runner.os }}-cargo-

- name: Setup Node.js (for perf comparison)
uses: actions/setup-node@v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
# Single source of truth: .node-version at the repo root. Node here is
# an informational peer (the hard regression gate is perry-vs-perry
Expand All @@ -73,7 +71,7 @@ jobs:
node-version-file: .node-version

- name: Setup Bun (for perf comparison)
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: '1.3.14'

Expand Down Expand Up @@ -250,7 +248,7 @@ jobs:

- name: Upload benchmark results
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: benchmark-results-${{ github.sha }}
path: |
Expand All @@ -268,16 +266,14 @@ jobs:
binary-size:
runs-on: macos-14
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -356,7 +352,7 @@ jobs:

- name: Upload binary size results
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: binary-sizes-${{ github.sha }}
path: .bench-results/binary-sizes.json
Expand All @@ -368,12 +364,10 @@ jobs:
compile-time:
runs-on: macos-14
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Measure clean-build time
Expand Down Expand Up @@ -409,7 +403,7 @@ jobs:

- name: Upload compile-time results
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: compile-time-${{ github.sha }}
path: .bench-results/compile-time.json
Expand All @@ -426,12 +420,12 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Download benchmark results
uses: actions/download-artifact@v8
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: benchmark-results-${{ github.sha }}
path: .bench-results
Expand Down
38 changes: 15 additions & 23 deletions .github/workflows/container-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
os: [macos-14, ubuntu-24.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Free up disk space (macOS)
if: runner.os == 'macOS'
Expand All @@ -96,13 +96,11 @@ jobs:
df -h / | tail -1

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo registry
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -164,21 +162,19 @@ jobs:
runs-on: macos-14
if: (github.event_name != 'pull_request' || github.base_ref == 'main') && (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-extended-tests'))
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Free up disk space (macOS)
run: |
sudo rm -rf /Library/Developer/CoreSimulator/Profiles/Runtimes/*Simulator* || true
df -h / | tail -1

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo registry
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -213,16 +209,14 @@ jobs:
runs-on: ubuntu-24.04
if: (github.event_name != 'pull_request' || github.base_ref == 'main') && (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-extended-tests'))
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo registry
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -259,16 +253,14 @@ jobs:
startsWith(github.ref, 'refs/tags/v') ||
github.event.inputs.run_e2e == 'true'
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Cache cargo registry
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -306,7 +298,7 @@ jobs:

- name: Upload e2e binaries (debugging)
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: e2e-bins-linux
path: target/e2e-bin/
Expand All @@ -326,7 +318,7 @@ jobs:
matrix:
target: [compose_yaml_parse, env_interpolation, compose_spec_json_round_trip]
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install nightly Rust + cargo-fuzz
run: |
Expand All @@ -340,7 +332,7 @@ jobs:

- name: Upload crash artifacts
if: failure()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: fuzz-crashes-${{ matrix.target }}
path: crates/perry-container-compose/fuzz/artifacts/${{ matrix.target }}/
Expand Down
15 changes: 6 additions & 9 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,13 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
components: llvm-tools-preview
run: rustup toolchain install nightly-2026-08-20 --profile minimal --component llvm-tools-preview
- uses: ./.github/actions/setup-llvm22

- uses: Swatinem/rust-cache@v2
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
with:
# Separate key from the main test cache — llvm-cov rebuilds
# the workspace with instrumentation, so its objects can't
Expand All @@ -50,7 +47,7 @@ jobs:
save-if: ${{ github.ref == 'refs/heads/main' }}

- name: Install cargo-llvm-cov
uses: taiki-e/install-action@v3
uses: taiki-e/install-action@6cd13508893c0e7eab5f273c2575d3859bd7229a # v2.86.6
with:
tool: cargo-llvm-cov

Expand Down Expand Up @@ -93,7 +90,7 @@ jobs:

- name: Upload HTML report
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: coverage-html
path: target/llvm-cov-html
Expand All @@ -102,7 +99,7 @@ jobs:

- name: Upload lcov.info
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: coverage-lcov
path: target/lcov.info
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Install mdBook
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -34,9 +34,9 @@ jobs:
run: |
./docs/i18n.sh build-all
cp docs/CNAME docs/book/CNAME
- uses: actions/configure-pages@v6
- uses: actions/upload-pages-artifact@v5
- uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
with:
path: docs/book
- id: deployment
uses: actions/deploy-pages@v5
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
10 changes: 4 additions & 6 deletions .github/workflows/eh-transport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,18 @@ jobs:
runs-on: macos-15
timeout-minutes: 60
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 'nightly-2026-08-20'
run: rustup toolchain install nightly-2026-08-20 --profile minimal
- uses: ./.github/actions/setup-llvm22

- name: Setup Node.js
uses: actions/setup-node@v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
node-version-file: .node-version

- uses: Swatinem/rust-cache@v2
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
with:
shared-key: "${{ runner.os }}-perry"
save-if: ${{ github.ref == 'refs/heads/main' }}
Expand Down
Loading
Loading