🦄 refactor: Revise return type of find() for ISwc4jAst #478
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: swc4j Build | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
paths-ignore: | |
- "**.md" | |
- "docs/**" | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- "docs/**" | |
env: | |
SWC4J_VERSION: 1.3.0 | |
jobs: | |
build_native: | |
strategy: | |
matrix: | |
include: | |
- image: windows-latest | |
os: windows | |
arch: x86_64 | |
ext: .dll | |
- image: ubuntu-latest | |
os: linux | |
arch: x86_64 | |
ext: .so | |
- image: macos-13 | |
os: macos | |
arch: x86_64 | |
ext: .dylib | |
- image: macos-14 | |
os: macos | |
arch: arm64 | |
ext: .dylib | |
name: Build swc4j for ${{ matrix.os }} ${{ matrix.arch }} | |
runs-on: ${{ matrix.image }} | |
steps: | |
- name: Set git to use LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- name: Checkout the code | |
uses: actions/checkout@v4 | |
- name: Setup Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Setup Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: vx.x.x | |
- name: Cargo Build and Test | |
env: | |
RUSTFLAGS: -Awarnings | |
run: | | |
cd rust | |
cargo build -r | |
cargo test -r | |
deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o ${{ matrix.os }} -a ${{ matrix.arch }} | |
- name: Setup JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: corretto | |
java-version: 8 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-version: 8.5 | |
- name: Build and Test | |
run: | | |
gradle build test generatePomFileForGeneratePomPublication --debug | |
- name: Upload the Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: swc4j-${{ matrix.os }}-${{ matrix.arch }}-${{ env.SWC4J_VERSION }} | |
path: | | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.jar | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.pom | |
build_cross_platform: | |
strategy: | |
matrix: | |
include: | |
- image: windows-latest | |
os: windows | |
arch: arm64 | |
ext: .dll | |
target: aarch64-pc-windows-msvc | |
command: | |
- image: ubuntu-latest | |
os: linux | |
arch: arm64 | |
ext: .so | |
target: aarch64-unknown-linux-gnu | |
command: sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu | |
name: Build swc4j for ${{ matrix.os }} ${{ matrix.arch }} | |
runs-on: ${{ matrix.image }} | |
steps: | |
- name: Set git to use LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- name: Checkout the code | |
uses: actions/checkout@v4 | |
- name: Setup Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Setup Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: vx.x.x | |
- name: Cargo Build and Test | |
env: | |
RUSTFLAGS: -Awarnings | |
run: | | |
cd rust | |
${{ matrix.command }} | |
rustup target add ${{ matrix.target }} | |
cargo build -r --target ${{ matrix.target }} | |
deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o ${{ matrix.os }} -a ${{ matrix.arch }} | |
- name: Setup JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: corretto | |
java-version: 8 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-version: 8.5 | |
- name: Build and Test | |
run: | | |
gradle build generatePomFileForGeneratePomPublication -x test --debug | |
- name: Upload the Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: swc4j-${{ matrix.os }}-${{ matrix.arch }}-${{ env.SWC4J_VERSION }} | |
path: | | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.jar | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.pom | |
build_android: | |
name: Build swc4j for Android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set git to use LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- name: Checkout the code | |
uses: actions/checkout@v4 | |
- name: Setup Rust | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Setup Android NDK | |
id: setup-ndk | |
uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: r27 | |
- name: Setup Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: vx.x.x | |
- name: Setup Cargo | |
env: | |
RUSTFLAGS: -Awarnings | |
run: | | |
cd rust | |
cargo install cargo-ndk | |
cargo ndk-env | |
rustup target add i686-linux-android | |
rustup target add x86_64-linux-android | |
rustup target add armv7-linux-androideabi | |
rustup target add aarch64-linux-android | |
- name: Cargo Build and Test | |
env: | |
RUSTFLAGS: -Awarnings | |
run: | | |
cd rust | |
cargo ndk --target i686-linux-android build --release && deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o android -a x86 | |
cargo ndk --target x86_64-linux-android build --release && deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o android -a x86_64 | |
cargo ndk --target armv7-linux-androideabi build --release && deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o android -a arm | |
cargo ndk --target aarch64-linux-android build --release && deno run --allow-all ../scripts/ts/copy_swc4j_lib.ts -o android -a arm64 | |
- name: Setup JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: corretto | |
java-version: 8 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-version: 8.5 | |
- name: Build and Test | |
run: | | |
gradle build generatePomFileForGeneratePomPublication -x test --debug | |
- name: Upload the Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: swc4j-android-${{ env.SWC4J_VERSION }} | |
path: | | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.jar | |
build/libs/swc4j-${{ env.SWC4J_VERSION }}.pom |