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
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.
|
|
|