Release #10
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
version_type: | |
description: "Kind of release" | |
required: true | |
default: "patch" | |
type: choice | |
options: | |
- patch | |
- minor | |
- major | |
env: | |
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" | |
jobs: | |
bump-version: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: x86_64-unknown-linux-gnu | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- run: cargo install --git https://github.com/LiterateInk/Mentor | |
- uses: pnpm/action-setup@v4 | |
with: | |
version: latest | |
- uses: actions/setup-node@v4 | |
with: | |
cache: 'pnpm' | |
node-version: 20 | |
registry-url: 'https://registry.npmjs.com' | |
cache-dependency-path: 'pnpm-lock.yaml' | |
- run: mentor bump ${{ github.event.inputs.version_type }} | |
- run: mentor ci-push prepare | |
make-swift: | |
runs-on: macos-latest | |
needs: bump-version | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- name: setup rust for swift package | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: aarch64-apple-ios, aarch64-apple-ios-sim, x86_64-apple-ios, aarch64-apple-darwin, x86_64-apple-darwin | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- run: cargo install --git https://github.com/LiterateInk/Mentor | |
- run: mentor make-swift | |
- run: mentor ci-push swift | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: xcframework | |
path: target/*FFI.xcframework.zip | |
make-kotlin: | |
runs-on: ubuntu-latest | |
needs: bump-version | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: x86_64-unknown-linux-gnu, aarch64-linux-android, armv7-linux-androideabi, i686-linux-android, x86_64-linux-android | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- run: cargo install cargo-ndk | |
- run: cargo install --git https://github.com/LiterateInk/Mentor | |
- run: mentor make-kotlin | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 21 | |
- uses: gradle/actions/setup-gradle@v4 | |
- run: ./gradlew publishAndReleaseToMavenCentral --no-configuration-cache | |
env: | |
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_CENTRAL_USERNAME }} | |
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_CENTRAL_PASSWORD }} | |
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }} | |
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ARTIFACT_SIGNING_PASSPHRASE }} | |
make-js: | |
runs-on: ubuntu-latest | |
needs: bump-version | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: x86_64-unknown-linux-gnu, wasm32-unknown-unknown | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- run: cargo install wasm-pack | |
- run: cargo install --git https://github.com/LiterateInk/Mentor | |
- uses: pnpm/action-setup@v4 | |
with: | |
version: latest | |
- uses: actions/setup-node@v4 | |
with: | |
cache: 'pnpm' | |
node-version: 20 | |
registry-url: 'https://registry.npmjs.com' | |
cache-dependency-path: 'pnpm-lock.yaml' | |
- run: npm install -g terser | |
- env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: | | |
pnpm install && mentor make-js | |
npm publish --provenance --access public | |
make-rust: | |
runs-on: ubuntu-latest | |
needs: bump-version | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }} | |
run: | | |
cargo publish | |
make-release: | |
needs: [make-swift, make-kotlin, make-js, make-rust] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: swatinem/rust-cache@v2 | |
with: | |
shared-key: "cache" | |
- run: cargo install --git https://github.com/LiterateInk/Mentor | |
- run: mentor ci-push release-tag | |
- id: version | |
run: echo "version=$(mentor version)" >> $GITHUB_OUTPUT | |
- uses: actions/download-artifact@v4 | |
with: | |
name: xcframework | |
- name: debugging directories... | |
run: | |
echo "working directory" | |
ls -la ./ | |
echo "target" | |
ls -la ./target | |
- uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: ${{ steps.version.outputs.version }} | |
name: ${{ steps.version.outputs.version }} | |
files: | | |
*FFI.xcframework.zip |