4f8d883acd
* Expose minify in next-swc * Expose minify in js binding * Use new minify function in terser plugin * Only upload changed binary artifact * Build next-swc binaries * Add swc license info to copied file
94 lines
3.2 KiB
YAML
94 lines
3.2 KiB
YAML
on: workflow_dispatch
|
|
|
|
name: Build next-swc native binaries
|
|
|
|
jobs:
|
|
build-native:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-18.04, macos-latest, windows-latest]
|
|
description: [default]
|
|
include:
|
|
- os: ubuntu-18.04
|
|
target: x86_64-unknown-linux-gnu
|
|
name: linux-x64-gnu
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
name: win32-x64-msvc
|
|
- os: macos-latest
|
|
target: x86_64-apple-darwin
|
|
name: darwin-x64
|
|
- os: macos-latest
|
|
target: aarch64-apple-darwin
|
|
name: darwin-arm64
|
|
description: m1
|
|
|
|
name: next-swc - ${{ matrix.os }} - ${{ matrix.target }} - node@14
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Setup node
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: 14
|
|
check-latest: true
|
|
- name: Install
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: nightly-2021-03-25
|
|
target: ${{ matrix.target }}
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/registry
|
|
key: stable-${{ matrix.os }}-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
|
|
- name: Cache cargo index
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo/git
|
|
key: stable-${{ matrix.os }}-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
|
|
- name: Cache native binary
|
|
id: binary-cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: packages/next/native/**
|
|
key: next-swc-nightly-2021-03-25-${{ matrix.target }}-${{ hashFiles('.github/workflows/build_native.yml', 'packages/next/build/swc/**') }}
|
|
- name: Cross build aarch64 setup
|
|
if: ${{ matrix.target == 'aarch64-apple-darwin' && steps.docs-change.outputs.DOCS_CHANGE != 'docs only change' }}
|
|
run: |
|
|
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*;
|
|
export CC=$(xcrun -f clang);
|
|
export CXX=$(xcrun -f clang++);
|
|
SYSROOT=$(xcrun --sdk macosx --show-sdk-path);
|
|
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT";
|
|
- name: 'Build'
|
|
if: steps.binary-cache.outputs.cache-hit != true
|
|
run: yarn build-native --target ${{ matrix.target }}
|
|
env:
|
|
MACOSX_DEPLOYMENT_TARGET: '10.13'
|
|
working-directory: packages/next
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2.2.4
|
|
with:
|
|
name: next-swc-binaries
|
|
path: packages/next/native/next-swc.${{ matrix.name }}.node
|
|
- name: Clear the cargo caches
|
|
run: |
|
|
cargo install cargo-cache --no-default-features --features ci-autoclean
|
|
cargo-cache
|
|
commit:
|
|
needs: build-native
|
|
runs-on: ubuntu-18.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/download-artifact@v2.0.10
|
|
with:
|
|
name: next-swc-binaries
|
|
path: packages/next/native
|
|
- uses: EndBug/add-and-commit@v7
|
|
with:
|
|
add: 'packages/next/native --force'
|
|
message: 'Build next-swc binaries'
|