fix: swap bun install for npm ci to fix integrity check failures
Known Bun bug (oven-sh/bun#1590, #26879, #18864) causes IntegrityCheckFailed during tarball extraction in Docker/CI. This is a 3+ year old issue with no fix in sight. Changes: - Generate package-lock.json via npm install --package-lock-only - Dockerfile: add nodejs npm to all stages, replace bun install with npm ci --legacy-peer-deps (peer dep conflict exists for eslint@8 with eslint-config-next@16) - Keep bun as runtime (bun test, bun run build, bun run start) - pr.yml: npm ci, npx prisma generate, npx playwright - release.yml: node scripts, npm test - build-ci-images.yml: add package-lock.json trigger path
This commit is contained in:
@@ -8,6 +8,7 @@ on:
|
||||
- "Dockerfile.ci-base"
|
||||
- "package.json"
|
||||
- "bun.lock"
|
||||
- "package-lock.json"
|
||||
- ".gitea/workflows/build-ci-images.yml"
|
||||
schedule:
|
||||
# Weekly rebuild to get latest Playwright/Bun versions
|
||||
|
||||
@@ -23,13 +23,13 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: bun install --retry 3
|
||||
run: npm ci --legacy-peer-deps
|
||||
|
||||
- name: Generate Prisma client
|
||||
run: bun x prisma generate
|
||||
run: npx prisma generate
|
||||
|
||||
- name: Run unit tests
|
||||
run: bun test src/__tests__/unit/ src/__tests__/*.test.tsx src/__tests__/auth-simple.test.ts
|
||||
run: npm test
|
||||
|
||||
build-and-deploy-ci:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -45,10 +45,10 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: bun install --retry 3
|
||||
run: npm ci --legacy-peer-deps
|
||||
|
||||
- name: Generate Prisma client
|
||||
run: bun x prisma generate
|
||||
run: npx prisma generate
|
||||
env:
|
||||
DATABASE_URL: postgresql://user:pass@localhost:5432/dummy
|
||||
|
||||
@@ -93,7 +93,7 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Run acceptance tests
|
||||
run: DATABASE_URL="${{ secrets.CI_DATABASE_URL }}" bun test:acceptance
|
||||
run: DATABASE_URL="${{ secrets.CI_DATABASE_URL }}" npx playwright test e2e/
|
||||
env:
|
||||
CI: true
|
||||
|
||||
|
||||
@@ -73,10 +73,10 @@ jobs:
|
||||
echo "Bumping version: $BUMP"
|
||||
|
||||
# Run the bump script
|
||||
bun run scripts/bump-version.js "$BUMP" --yes
|
||||
node scripts/bump-version.js "$BUMP" --yes
|
||||
|
||||
# Get new version
|
||||
NEW_VERSION=$(bun -e "console.log(require('./package.json').version)")
|
||||
NEW_VERSION=$(node -e "console.log(require('./package.json').version)")
|
||||
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "New version: $NEW_VERSION"
|
||||
|
||||
@@ -121,8 +121,9 @@ jobs:
|
||||
run: |
|
||||
docker run --rm \
|
||||
-e DATABASE_URL="postgresql://user:pass@localhost:5432/dummy" \
|
||||
-e NODE_ENV=test \
|
||||
${{ env.IMAGE_NAME }}-test:${{ steps.version.outputs.new_version }} \
|
||||
bun test 'src/__tests__/unit/**' 'src/__tests__/*.test.tsx' 'src/__tests__/auth-simple.test.ts'
|
||||
npm test
|
||||
|
||||
- name: Build production image
|
||||
if: steps.commit.outputs.committed == 'true'
|
||||
|
||||
Reference in New Issue
Block a user