datahaven/.github/workflows/task-moonwall-tests.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

72 lines
2 KiB
YAML

name: Moonwall Tests
on:
workflow_dispatch:
workflow_call:
inputs:
binary-hash:
description: "Hash of the built operator binary uploaded as artifact"
required: true
type: string
jobs:
moonwall:
runs-on: ubuntu-latest
defaults:
run:
working-directory: test
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Download operator binary artifact
uses: actions/download-artifact@v4
with:
name: datahaven-node-${{ inputs.binary-hash }}
path: operator/target/x86_64-unknown-linux-gnu/release
- name: Prepare operator binary in expected path
run: |
mkdir -p ../operator/target/release
cp ../operator/target/x86_64-unknown-linux-gnu/release/datahaven-node ../operator/target/release/datahaven-node
chmod +x ../operator/target/release/datahaven-node
timeout 20 ../operator/target/release/datahaven-node \
--dev \
--no-telemetry \
--unsafe-force-node-key-generation \
--reserved-only \
--no-grandpa \
--no-prometheus \
--sealing=manual 2>&1 | head -50 || echo "Node startup test completed"
- uses: oven-sh/setup-bun@v2
with:
bun-version-file: test/.bun-version
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install
- name: Run Moonwall tests
run: bun run moonwall:test
- name: Upload Moonwall reports
if: always()
uses: actions/upload-artifact@v4
with:
name: moonwall-reports
path: |
test/tmp/testResults.json
test/reports/**
test/**/*.log
retention-days: 1