0.5.0 #171
Workflow file for this run
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: Linux/Windows/macOS/Android/iOS (Build/Test/Release) | |
on: | |
push: | |
branches: [ main, next ] | |
pull_request: | |
branches: [ main, next ] | |
env: | |
RUST_BACKTRACE: full | |
jobs: | |
build_test_common_os: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
toolchain: [stable] | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: Setup Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- uses: extractions/setup-just@v1 | |
- uses: hustcer/[email protected] | |
with: | |
version: '0.85' | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_GLOBAL }} | |
- name: Just version | |
run: just --version | |
- name: Build | |
run: just build_all | |
- name: Test | |
run: just test_all | |
build_test_android: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
target: [i686-linux-android, aarch64-linux-android, armv7-linux-androideabi, thumbv7neon-linux-androideabi, x86_64-linux-android] | |
toolchain: [stable] | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: Setup Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --release --target ${{ matrix.target }} | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: test | |
args: --release --target ${{ matrix.target }} | |
build_test_ios: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
toolchain: [stable] | |
steps: | |
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
- name: Setup Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Add target | |
run: rustup target add x86_64-apple-ios | |
- name: Cache cargo install | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/bin/ | |
key: ${{ runner.os }}-${{ matrix.toolchain }}-${{ github.ref }}-cargo-install-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install cargo-dinghy | |
run: | | |
if ! command -v cargo-dinghy &> /dev/null | |
then | |
cargo install cargo-dinghy | |
fi | |
- name: Start iPhone simulator | |
run: xcrun simctl boot "iPhone 14" | |
- name: List simulators | |
run: xcrun simctl list | |
- name: Build and run tests | |
run: cargo dinghy -d iphone test | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
needs: [build_test_common_os, build_test_android, build_test_ios] | |
if: github.ref == 'refs/heads/main' | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 | |
with: | |
ref: main | |
- name: install npm | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: install @semantic-release/exec | |
run: npm install @semantic-release/exec | |
- name: Semantic Release | |
uses: cycjimmy/semantic-release-action@v3 | |
with: | |
branch: main | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_GLOBAL }} | |
CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }} |