You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

97 lines
3.0 KiB

name: publish-kn
on:
workflow_dispatch:
inputs:
publish:
description: 'Publish package (y/n)'
default: 'n'
jobs:
publish:
name: Library Publish
runs-on: macos-latest # at least macos-13 is required to enable c++20 support
defaults:
run:
working-directory: ./wrappers/kn
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: true
- name: Prepare Zig toolchain
uses: mlugg/setup-zig@v2
with:
version: 0.13.0
- name: Checkout toolchain initializer repository
uses: actions/checkout@v6
with:
repository: ISNing/kn-toolchain-initializer
path: wrappers/kn/.kn-toolchain-initializer
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 17
distribution: temurin
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v5
- name: Initialize Kotlin/Native toolchain
working-directory: wrappers/kn/.kn-toolchain-initializer
run: ./gradlew build -DkotlinVersion=2.2.0
- name: Export Toolchain properties
run: |
echo -e "konan.dir=$HOME/.konan/kotlin-native-prebuilt-macos-aarch64-2.2.0" >> local.properties
- name: Build Library
run: |
export PATH="$PATH:$(brew --prefix llvm@15)/bin"
./gradlew assemble
- name: Run All Library Tests
run: |
export PATH="$PATH:$(brew --prefix llvm@15)/bin"
./gradlew allTests
- name: Upload Library Test Reports
uses: actions/upload-artifact@v6
with:
name: allTests-reports
path: wrappers/kn/build/reports/tests/allTests
- name: Upload Built LinuxArm64 shared library
uses: actions/upload-artifact@v6
with:
name: linuxArm64-shared
path: wrappers/kn/build/cmake/libZXing/linuxArm64
- name: Upload Built LinuxX64 shared library
uses: actions/upload-artifact@v6
with:
name: linuxX64-shared
path: wrappers/kn/build/cmake/libZXing/linuxX64
- name: Publish Library
if: ${{ github.event.inputs.publish == 'y' }}
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_KEY_PASSWORD }}
run: |
export PATH="$PATH:$(brew --prefix llvm@15)/bin"
./gradlew publishToMavenCentral
# To actually publish the blob, login to https://central.sonatype.com/publishing/deployments.