From fed3ffa865464d2a960d8e2fd7468cdef19cd147 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Tue, 21 Mar 2023 16:09:52 -0700 Subject: [PATCH] Skip extra swc builds (#47378) This removes some extra swc builds which are rarely if ever used and are also prone to breaking fairly often due to the extra configuration required to build them. x-ref: [slack thread](https://vercel.slack.com/archives/C04KC8A53T7/p1679434160981059) --- .github/workflows/build_test_deploy.yml | 134 ------------------ .../napi/npm/android-arm-eabi/README.md | 3 - .../napi/npm/android-arm-eabi/package.json | 18 --- .../crates/napi/npm/android-arm64/README.md | 3 - .../napi/npm/android-arm64/package.json | 18 --- .../crates/napi/npm/freebsd-x64/README.md | 3 - .../crates/napi/npm/freebsd-x64/package.json | 18 --- .../napi/npm/linux-arm-gnueabihf/README.md | 3 - .../napi/npm/linux-arm-gnueabihf/package.json | 18 --- packages/next-swc/package.json | 4 - scripts/install-native.mjs | 3 - scripts/pull-freebsd-cache.js | 30 ---- 12 files changed, 255 deletions(-) delete mode 100644 packages/next-swc/crates/napi/npm/android-arm-eabi/README.md delete mode 100644 packages/next-swc/crates/napi/npm/android-arm-eabi/package.json delete mode 100644 packages/next-swc/crates/napi/npm/android-arm64/README.md delete mode 100644 packages/next-swc/crates/napi/npm/android-arm64/package.json delete mode 100644 packages/next-swc/crates/napi/npm/freebsd-x64/README.md delete mode 100644 packages/next-swc/crates/napi/npm/freebsd-x64/package.json delete mode 100644 packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/README.md delete mode 100644 packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/package.json delete mode 100755 scripts/pull-freebsd-cache.js diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index 0ad4b7744b..3695eb96e5 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -915,7 +915,6 @@ jobs: - build - build-wasm - build-native - - build-native-freebsd env: NPM_TOKEN: ${{ secrets.NPM_TOKEN_ELEVATED }} steps: @@ -1300,45 +1299,6 @@ jobs: export CC_aarch64_unknown_linux_gnu=/usr/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc && turbo run build-native -- --release --target aarch64-unknown-linux-gnu && llvm-strip -x packages/next-swc/native/next-swc.*.node - - host: ubuntu-latest - target: 'armv7-unknown-linux-gnueabihf' - setup: | - sudo apt-get update - sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y - build: | - npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" && if [ ! -f $(dirname $(which yarn))/pnpm ]; then ln -s $(which yarn) $(dirname $(which yarn))/pnpm;fi - turbo run build-native-no-plugin -- --release --target armv7-unknown-linux-gnueabihf - arm-linux-gnueabihf-strip packages/next-swc/native/next-swc.*.node - - host: ubuntu-latest - target: aarch64-linux-android - build: | - export CLANG_VERSION=`ls ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang | sed 's/ *$//g'` - export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" - export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" - export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++" - export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" - export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" - touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" - chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" - echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" - npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" && if [ ! -f $(dirname $(which yarn))/pnpm ]; then ln -s $(which yarn) $(dirname $(which yarn))/pnpm;fi - turbo run build-native -- --release --target aarch64-linux-android - ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip packages/next-swc/native/next-swc.*.node - - host: ubuntu-latest - target: armv7-linux-androideabi - build: | - export CLANG_VERSION=`ls ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang | sed 's/ *$//g'` - export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" - export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" - export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++" - export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" - export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" - touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/arm/libgcc.a" - chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/arm/libgcc.a" - echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${CLANG_VERSION}/lib/linux/arm/libgcc.a" - npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" "pnpm@${PNPM_VERSION}" - turbo run build-native-no-plugin -- --release --target armv7-linux-androideabi - ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip packages/next-swc/native/next-swc.*.node - host: ubuntu-latest target: 'aarch64-unknown-linux-musl' docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2022-10-24-alpine @@ -1441,100 +1401,6 @@ jobs: name: next-swc-binaries path: packages/next-swc/native/next-swc.*.node - build-native-freebsd: - if: ${{ needs.build.outputs.isRelease == 'true' || (needs.build.outputs.turboToken != 'empty') }} - needs: build - name: stable - x86_64-unknown-freebsd - node@16 - runs-on: macos-12 - env: - TURBO_TEAM: 'vercel' - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_REMOTE_ONLY: 'true' - steps: - - name: tune mac network - run: sudo sysctl -w net.link.generic.system.hwcksum_tx=0 && sudo sysctl -w net.link.generic.system.hwcksum_rx=0 - - uses: actions/checkout@v3 - - - name: Setup node - uses: actions/setup-node@v3 - with: - node-version: 16 - check-latest: true - - - run: npm i -g turbo@${{ env.TURBO_VERSION }} pnpm@${PNPM_VERSION} - - - name: Delete useless files - run: | - rm -rf bench - rm -rf docs - rm -rf errors - rm -rf examples - rm -rf test - - - run: node scripts/normalize-version-bump.js - - # attempt pulling existing turbo cache, this must be done - # outside of the freeBSD vm as there isn't a turbo build - # for freeBSD currently - - run: node ./scripts/pull-freebsd-cache.js - - - name: check build exists - run: if [ -f packages/next-swc/native/next-swc.freebsd-x64.node ]; then echo "BUILD_EXISTS=yes" >> $GITHUB_OUTPUT; else echo "BUILD_EXISTS=no" >> $GITHUB_OUTPUT; fi - id: build-exists - - - run: echo "${{steps.build-exists.outputs.BUILD_EXISTS}}" - - - name: Build - id: build - uses: vmactions/freebsd-vm@v0 - if: ${{ steps.build-exists.outputs.BUILD_EXISTS == 'no' }} - env: - DEBUG: napi:* - RUSTUP_HOME: /usr/local/rustup - CARGO_HOME: /usr/local/cargo - RUSTUP_IO_THREADS: 1 - # Disable LTO, or the lld may crash with OOM - CARGO_PROFILE_RELEASE_LTO: false - with: - envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS CARGO_PROFILE_RELEASE_LTO NAPI_CLI_VERSION RUST_TOOLCHAIN PNPM_VERSION VM_RELEASE - usesh: true - sync: rsync - copyback: false - mem: 6000 - prepare: | - pkg install -y -f curl node libnghttp2 - curl -qL https://www.npmjs.com/install.sh | sh - npm i -g pnpm@${PNPM_VERSION} "@napi-rs/cli@${NAPI_CLI_VERSION}" - curl https://sh.rustup.rs -sSf --output rustup.sh - sh rustup.sh -y --profile minimal --default-toolchain stable - export PATH="/usr/local/cargo/bin:$PATH" - echo "~~~~ rustc --version ~~~~" - rustc --version - echo "~~~~ node -v ~~~~" - node -v - run: | - export PATH="/usr/local/cargo/bin:$PATH" - pwd - ls -lah - whoami - env - freebsd-version - GITHUB_EVENT_PATH='' pnpm --filter=@next/swc run build-native-no-plugin --platform --release --target x86_64-unknown-freebsd - rm -rf node_modules - rm -rf packages/next-swc/target - - - name: cache build - if: ${{ steps.build-exists.outputs.BUILD_EXISTS == 'no' }} - run: pnpm turbo run --force cache-build-native -- --platform --release --target x86_64-unknown-freebsd - - - name: Upload artifact - if: ${{ needs.build.outputs.isRelease == 'true' }} - uses: actions/upload-artifact@v3 - with: - name: next-swc-binaries - path: packages/next-swc/native/next-swc.*.node - if-no-files-found: error - build-wasm: needs: build if: ${{ needs.build.outputs.isRelease == 'true' || (needs.build.outputs.turboToken != 'empty') }} diff --git a/packages/next-swc/crates/napi/npm/android-arm-eabi/README.md b/packages/next-swc/crates/napi/npm/android-arm-eabi/README.md deleted file mode 100644 index 7044554db6..0000000000 --- a/packages/next-swc/crates/napi/npm/android-arm-eabi/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@next/swc-android-arm-eabi` - -This is the **android-arm-eabi** binary for `@next/swc` diff --git a/packages/next-swc/crates/napi/npm/android-arm-eabi/package.json b/packages/next-swc/crates/napi/npm/android-arm-eabi/package.json deleted file mode 100644 index 69ec8a4b23..0000000000 --- a/packages/next-swc/crates/napi/npm/android-arm-eabi/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@next/swc-android-arm-eabi", - "version": "0.0.0", - "os": [ - "android" - ], - "cpu": [ - "arm" - ], - "main": "next-swc.android-arm-eabi.node", - "files": [ - "next-swc.android-arm-eabi.node" - ], - "license": "MIT", - "engines": { - "node": ">= 10" - } -} diff --git a/packages/next-swc/crates/napi/npm/android-arm64/README.md b/packages/next-swc/crates/napi/npm/android-arm64/README.md deleted file mode 100644 index 4b20457835..0000000000 --- a/packages/next-swc/crates/napi/npm/android-arm64/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@next/swc-android-arm64` - -This is the **android-arm64** binary for `@next/swc` diff --git a/packages/next-swc/crates/napi/npm/android-arm64/package.json b/packages/next-swc/crates/napi/npm/android-arm64/package.json deleted file mode 100644 index e251bb0d78..0000000000 --- a/packages/next-swc/crates/napi/npm/android-arm64/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@next/swc-android-arm64", - "version": "0.0.0", - "os": [ - "android" - ], - "cpu": [ - "arm64" - ], - "main": "next-swc.android-arm64.node", - "files": [ - "next-swc.android-arm64.node" - ], - "license": "MIT", - "engines": { - "node": ">= 10" - } -} diff --git a/packages/next-swc/crates/napi/npm/freebsd-x64/README.md b/packages/next-swc/crates/napi/npm/freebsd-x64/README.md deleted file mode 100644 index 8a9ba18e17..0000000000 --- a/packages/next-swc/crates/napi/npm/freebsd-x64/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@next/swc-freebsd-x64` - -This is the **x86_64-unknown-freebsd** binary for `@next/swc` diff --git a/packages/next-swc/crates/napi/npm/freebsd-x64/package.json b/packages/next-swc/crates/napi/npm/freebsd-x64/package.json deleted file mode 100644 index d76208230f..0000000000 --- a/packages/next-swc/crates/napi/npm/freebsd-x64/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@next/swc-freebsd-x64", - "version": "0.0.0", - "os": [ - "freebsd" - ], - "cpu": [ - "x64" - ], - "main": "next-swc.freebsd-x64.node", - "files": [ - "next-swc.freebsd-x64.node" - ], - "license": "MIT", - "engines": { - "node": ">= 10" - } -} diff --git a/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/README.md b/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/README.md deleted file mode 100644 index 499a9b7984..0000000000 --- a/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@next/swc-linux-arm-gnueabihf` - -This is the **linux-arm-gnueabihf** binary for `@next/swc` diff --git a/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/package.json b/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/package.json deleted file mode 100644 index 3049a54a6d..0000000000 --- a/packages/next-swc/crates/napi/npm/linux-arm-gnueabihf/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@next/swc-linux-arm-gnueabihf", - "version": "0.0.0", - "os": [ - "linux" - ], - "cpu": [ - "arm" - ], - "main": "next-swc.linux-arm-gnueabihf.node", - "files": [ - "next-swc.linux-arm-gnueabihf.node" - ], - "license": "MIT", - "engines": { - "node": ">= 10" - } -} diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 346f6fccfd..e3dda9900d 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -19,11 +19,7 @@ "additional": [ "i686-pc-windows-msvc", "aarch64-unknown-linux-gnu", - "armv7-unknown-linux-gnueabihf", "aarch64-apple-darwin", - "aarch64-linux-android", - "arm-linux-androideabi", - "x86_64-unknown-freebsd", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc" diff --git a/scripts/install-native.mjs b/scripts/install-native.mjs index 08010a37cd..84b3826314 100644 --- a/scripts/install-native.mjs +++ b/scripts/install-native.mjs @@ -41,11 +41,8 @@ import fs from 'fs-extra' name: 'dummy-package', version: '1.0.0', optionalDependencies: { - '@next/swc-android-arm64': 'canary', - '@next/swc-android-arm-eabi': 'canary', '@next/swc-darwin-arm64': 'canary', '@next/swc-darwin-x64': 'canary', - '@next/swc-linux-arm-gnueabihf': 'canary', '@next/swc-linux-arm64-gnu': 'canary', '@next/swc-linux-arm64-musl': 'canary', '@next/swc-linux-x64-gnu': 'canary', diff --git a/scripts/pull-freebsd-cache.js b/scripts/pull-freebsd-cache.js deleted file mode 100755 index 8e26caaca2..0000000000 --- a/scripts/pull-freebsd-cache.js +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env node -// @ts-check - -const { execSync } = require('child_process') - -;(async function () { - const turboResult = execSync( - `pnpm turbo run cache-build-native --dry=json -- --platform --release --target x86_64-unknown-freebsd` - ).toString() - - const turboData = JSON.parse(turboResult) - - const task = turboData.tasks.find((t) => t.command !== '') - - if (!task) { - console.warn(`Failed to find related turbo task`, turboResult) - return - } - - // pull cache if it was available - if (task.cacheState.local || task.cacheState.remote) { - const pullResult = execSync( - `pnpm turbo run cache-build-native -- --platform --release --target x86_64-unknown-freebsd` - ).toString() - console.log(pullResult) - } else { - console.warn(`No turbo cache was available, continuing...`) - console.warn(task) - } -})()