Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/automerge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
# The merge has to come from the bot (or a PAT): a merge made with the
# workflow's own token would not trigger the main build workflow.
- name: Bot token
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
# removing the label with this token doesn't start the unlabeled run above, so
# turn auto-merge off here as well
- name: Remove the automerge label
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/bot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # saved from main only (pixi-cache.yaml)
- id: plan
env:
GITHUB_TOKEN: ${{ github.token }} # GitHub API: ros/rosdistro sync tags
Expand Down Expand Up @@ -134,7 +135,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the plan job saves the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
- name: robostack-bot ${{ matrix.command }} ${{ matrix.distro }}
id: bot
env:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
# one job saves the shared pixi environment cache (same key for all)
cache-write: ${{ matrix.distro == fromJSON(needs.plan.outputs.distros)[0] && matrix.platform == 'linux-64' }}
cache-write: false # saved by pixi-cache.yaml
- name: Generate and push the build branch
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/pixi-cache.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# The pixi environment caches, saved from main only: pull requests restore them (a
# pull request can read its base branch's caches) instead of each saving its own copy
# for every lock file, which pushed the build caches out of the repository's 10 GB.
name: pixi environment caches

on:
push:
branches: [main]
paths: [pixi.toml, pixi.lock]
workflow_dispatch:

permissions:
contents: read

jobs:
save:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-15-intel, macos-15, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Disable git auto-maintenance
run: git config --global maintenance.auto false && git config --global gc.auto 0 && git config --global core.longpaths true
- uses: prefix-dev/setup-pixi@v0.11.0
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: true
12 changes: 5 additions & 7 deletions .github/workflows/testpr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
- name: Which distributions changed
id: plan
env:
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
- name: Sanity checks (every distribution assembles, generated files up to date, sorted)
run: pixi run rs check
- name: Unit tests of the tooling
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
- name: Generate the recipes of every platform
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -171,9 +171,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
# every distribution's job on a platform has the same cache key; let one
# of them save it instead of all racing ("Unable to reserve cache")
cache-write: ${{ matrix.distro == fromJSON(needs.plan.outputs.distros)[0] }}
cache-write: false # saved from main only (pixi-cache.yaml)

- name: Windows workarounds (short build path, long paths, PATH and SDK clean-up)
if: runner.os == 'Windows'
Expand Down Expand Up @@ -352,7 +350,7 @@ jobs:
with:
locked: true # the lock file must match pixi.toml
pixi-version: v0.81.0
cache-write: false # the build jobs save the pixi environment cache
cache-write: false # saved from main only (pixi-cache.yaml)
- uses: actions/download-artifact@v7
with:
pattern: abi-check-*
Expand Down
Loading