datahaven/.github/workflows/task-ts-build.yml
Ahmad Kaouk dd7b72ca29
chore: pin Bun version and migrate to bun.lock (#290)
## Summary

Pins Bun version to 1.3.2 and migrates workflows to use text-based
`bun.lock` instead of binary `bun.lockb`. This fixes CI failures caused
by Bun version mismatches between local development and GitHub Actions.

## Changes

- Created `test/.bun-version` to pin Bun to v1.3.2
- Updated all workflows to use `bun-version-file: test/.bun-version`
- Migrated workflow cache keys from `bun.lockb` to `bun.lock`
- Removed deprecated `test/bun.lockb` binary lockfile

## Why?

**Version Consistency:**
- Local environments and CI were using different Bun versions
- Different versions generate different lockfile formats → CI failures

**Lockfile Migration:**
- Bun v1.2+ uses text-based `bun.lock` as default
- Binary `bun.lockb` is still supported but deprioritized
- Text format provides better git diffs and merge conflict resolution

## Affected Workflows

- `.github/workflows/task-check-metadata.yml`
- `.github/workflows/task-e2e.yml`
- `.github/workflows/task-moonwall-tests.yml`
- `.github/workflows/task-ts-build.yml`
- `.github/workflows/task-ts-lint.yml`

## After Merge

Developers should upgrade their local Bun:
```bash
bun upgrade --stable  # Should install v1.3.2
bun --version         # Verify version
bun install           # Regenerate lockfile if needed
```

---------

Co-authored-by: Steve Degosserie <723552+stiiifff@users.noreply.github.com>
2025-11-10 22:37:39 +01:00

47 lines
No EOL
1.3 KiB
YAML

name: TS Build
on:
workflow_dispatch:
workflow_call:
jobs:
generate-wagmi:
runs-on: ubuntu-latest
name: Check Bindings are current
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- uses: oven-sh/setup-bun@v2
with:
bun-version-file: test/.bun-version
- uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Run Forge build
run: |
forge build
working-directory: contracts
- name: Install dependencies
working-directory: test
run: bun install
- name: Generate Wagmi Bindings
working-directory: test
run: bun generate:wagmi
- name: Check no local changes
run: |
changes=$(git status --porcelain .)
if [ -n "$changes" ]; then
echo "generate:wagmi produced changes:"
echo "$changes"
echo "Please run 'bun generate:wagmi' locally and commit the changes."
exit 1
else
echo "No changes"
exit 0
fi