Skip to content

ci: add android/wasm wrappers deployment #74

ci: add android/wasm wrappers deployment

ci: add android/wasm wrappers deployment #74

Workflow file for this run

name: Publish Package
on:
workflow_dispatch:
inputs:
beta:
description: Publish a beta version (npmjs)
default: false
required: true
type: boolean
rust:
description: Publish a rust version (crates.io)
default: true
required: true
type: boolean
android:
description: Publish an android version (maven)
default: true
required: true
type: boolean
wasm:
description: Publish a wasm version (npmjs)
default: true
required: true
type: boolean
jobs:

Check failure on line 27 in .github/workflows/publish.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/publish.yml

Invalid workflow file

You have an error in your yaml syntax on line 27
build-wasm:
environment: npm-publish
if: ${{ inputs.wasm == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Checkout action
uses: actions/checkout@v3
with:
repository: Devolutions/actions
path: actions
ref: v2
token: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }}
- name: Setup wasm
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
wasm-pack --version
- name: Build
run: sh build.sh
working-directory: wrappers/wasm
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: wasm
path: dist/bundler
- name: Setup .npmrc config file
uses: ./actions/npmrc-setup
with:
github_token: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }}
- name: Publish
run: npm publish --tag 'beta' #${{ inputs.beta && 'beta' || 'latest' }}
working-directory: dist/bundler
- run: rm $HOME/.npmrc
- name: Configure NPM
run: npm config set "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}"
- name: Publish
run: npm publish --tag 'beta' #${{ inputs.beta && 'beta' || 'latest' }}
working-directory: dist/bundler
- name: Update Artifactory Cache
run: gh workflow run update-artifactory-cache.yml --repo Devolutions/scheduled-tasks --field package_name="slauth"
env:
GH_TOKEN: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }}
build-android:
environment: cloudsmith-publish
if: ${{ inputs.android == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up JDK 1.8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'adopt'
- name: Setup Android
run: |
wget https://dl.google.com/android/repository/android-ndk-r23b-linux.zip
unzip android-ndk-r23b-linux.zip
export ANDROID_NDK_HOME=$GITHUB_WORKSPACE/android-ndk-r23b
echo "ANDROID_NDK_HOME=$ANDROID_NDK_HOME" >> $GITHUB_ENV
echo "$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH
echo "$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android" >> $GITHUB_ENV::LIBRARY_PATH
echo "$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android" >> $GITHUB_ENV::LD_LIBRARY_PATH
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
rustup target add x86_64-unknown-linux-gnu
- name: Build
run: |
cd wrappers/android
sh build.sh
- name: Create local.properties
run: |
echo "sdk.dir=$ANDROID_HOME" > local.properties
- run: chmod +x gradlew
- name: Package .aar
run: ./gradlew clean assembleRelease
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
CLOUDSMITH_USERNAME: bot-devolutions
- run: ./gradlew publish
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
CLOUDSMITH_USERNAME: bot-devolutions
- name: Upload .aar artifact
uses: actions/upload-artifact@v4
with:
name: android
path: wrappers/android/build/outputs/aar/slauth-release.aar
build-rust:
environment: crates-publish
if: ${{ inputs.rust == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- run: cargo package
- name: Find package version
id: package
run: echo name=$(ls *.crate) > $GITHUB_OUTPUT
working-directory: target/package
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: rust
path: target/package/${{ steps.package.outputs.name }}
- name: Publish
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}