Skip to content

Release

Release #10

Workflow file for this run

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