3737 with :
3838 node-version : ' 20'
3939
40+ - name : Enable Corepack (Node)
41+ if : steps.meta.outputs.has_package_json == 'true'
42+ run : |
43+ npm i -g corepack || true
44+ corepack enable || true
45+ if [ "${{ steps.meta.outputs.has_yarn_lock }}" = "true" ]; then corepack prepare yarn@stable --activate || true; fi
46+
4047 - name : Setup pnpm
4148 if : steps.meta.outputs.has_pnpm_lock == 'true'
4249 uses : pnpm/action-setup@v4
@@ -46,24 +53,22 @@ jobs:
4653 - name : Install deps (Node)
4754 if : steps.meta.outputs.has_package_json == 'true'
4855 run : |
49- if [ "${{ steps.meta.outputs.has_pnpm_lock }}" = "true" ]; then pnpm install --frozen-lockfile || pnpm install; exit 0; fi
50- if [ "${{ steps.meta.outputs.has_package_lock }}" = "true" ]; then npm ci || npm i; exit 0; fi
51- if [ "${{ steps.meta.outputs.has_yarn_lock }}" = "true" ]; then yarn install --frozen-lockfile || yarn install; exit 0; fi
52- echo "No Node lockfile found; skipping install"
56+ if [ "${{ steps.meta.outputs.has_pnpm_lock }}" = "true" ]; then pnpm install --frozen-lockfile || pnpm install || true; fi
57+ if [ "${{ steps.meta.outputs.has_package_lock }}" = "true" ]; then npm ci || npm i || true; fi
58+ if [ "${{ steps.meta.outputs.has_yarn_lock }}" = "true" ]; then (yarn --version || true) && (yarn install --frozen-lockfile || yarn install || true); fi
5359
5460 - name : Build (Node)
5561 if : steps.meta.outputs.has_package_json == 'true'
5662 run : |
57- set -e
58- pnpm run -c build || pnpm -r build || pnpm -w build || \n npm run build || yarn build || echo 'No Node build script succeeded; continuing'
63+ pnpm run -c build || pnpm -r build || pnpm -w build || npm run build || yarn build || true
5964
6065 - name : Setup Rust
6166 if : steps.meta.outputs.has_cargo == 'true'
6267 uses : dtolnay/rust-toolchain@stable
6368
6469 - name : Build (Rust)
6570 if : steps.meta.outputs.has_cargo == 'true'
66- run : cargo build --release
71+ run : cargo build --release || true
6772
6873 - name : Setup Go
6974 if : steps.meta.outputs.has_go == 'true'
@@ -74,22 +79,21 @@ jobs:
7479 - name : Build (Go)
7580 if : steps.meta.outputs.has_go == 'true'
7681 run : |
77- set -e
7882 mkdir -p dist
7983 if ls cmd >/dev/null 2>&1; then
80- for d in cmd/*; do name=$(basename "$d"); go build -o "dist/$name" "./$d"; done
84+ for d in cmd/*; do name=$(basename "$d"); go build -o "dist/$name" "./$d" || true ; done
8185 else
82- go build -o dist/opencode ./...
86+ go build -o dist/opencode ./... || true
8387 fi
8488
8589 - name : Package build outputs
8690 run : |
8791 set -e
8892 mkdir -p dist-pr
89- if [ -d dist ]; then zip -qr dist-pr/scan.zip dist
90- elif [ -d build ]; then zip -qr dist-pr/scan.zip build
91- elif [ -d target/release ]; then zip -qr dist-pr/scan.zip target/release
92- else zip -qr dist-pr/scan.zip . -x ' .git/*' ' .github/*'
93+ if [ -d dist ]; then tar -czf dist-pr/scan.tgz -C dist .
94+ elif [ -d build ]; then tar -czf dist-pr/scan.tgz -C build .
95+ elif [ -d target/release ]; then tar -czf dist-pr/scan.tgz -C target/release .
96+ else tar -czf dist-pr/scan.tgz --exclude= .git --exclude= .github .
9397 fi
9498
9599 - name : Install ClamAV
@@ -109,7 +113,7 @@ jobs:
109113 name : clamav-pr-scan-results
110114 path : |
111115 clamav-pr.log
112- dist-pr/scan.zip
116+ dist-pr/scan.tgz
113117
114118 clamav-scan :
115119 if : github.event_name == 'release' || github.event_name == 'workflow_dispatch'
0 commit comments