Skip to content

Migrate to KMP

Migrate to KMP #15

Workflow file for this run

name: Release
#on:
# push:
# tags:
# - 'v*.*.*'
on: pull_request # for test purpose.
env:
file-name: s2c
jobs:
create-release-binaries:
strategy:
matrix:
os: [ macos-latest, windows-latest, ubuntu-latest ]
runs-on: ${{matrix.os}}
steps:
- name: Checkout the repo
uses: actions/checkout@v4
- uses: ./.github/actions/setup
- name: Build Native Binary for macos
if: matrix.os == 'macos-latest'
uses: burrunan/gradle-cache-action@v1
with:
gradle-version: wrapper
job-id: ${{ matrix.os }}
arguments: releaseMacOS
- name: Build Native Binary for Windows
if: matrix.os == 'windows-latest'
uses: burrunan/gradle-cache-action@v1
with:
gradle-version: wrapper
job-id: ${{ matrix.os }}
arguments: releaseWindows
- name: Build Native Binary for Linux
if: matrix.os == 'ubuntu-latest'
uses: burrunan/gradle-cache-action@v1
with:
gradle-version: wrapper
job-id: ${{ matrix.os }}
arguments: releaseLinux
- uses: ./.github/actions/setup-nodejs
if: matrix.os == 'ubuntu-latest'
- uses: ./.github/actions/cli-integrity-check
if: matrix.os == 'ubuntu-latest'
continue-on-error: false
- name: Uploading macos Arm64 binaries
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
with:
name: ${{ env.file-name }}-macosArm64-binaries # add tag to file name.
path: shared/build/bin/macosArm64/releaseExecutable/
if-no-files-found: error
- name: Uploading macos x64 binaries
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
with:
name: ${{ env.file-name }}-macosX64-binaries # add tag to file name.
path: shared/build/bin/macosX64/releaseExecutable/
if-no-files-found: error
- name: Uploading Linux binaries
uses: actions/upload-artifact@v4
if: matrix.os == 'ubuntu-latest'
with:
name: ${{ env.file-name }}-linuxX64-binaries # add tag to file name.
path: shared/build/bin/linuxX64/releaseExecutable/
if-no-files-found: error
- name: Uploading Windows binaries
uses: actions/upload-artifact@v4
if: matrix.os == 'windows-latest'
with:
name: ${{ env.file-name }}-mingwX64-binaries # add tag to file name.
path: shared/build/bin/mingwX64/releaseExecutable/
if-no-files-found: error
- name: Uploading script
uses: actions/upload-artifact@v4
if: matrix.os == 'ubuntu-latest' # should only run once.
with:
name: s2c
path: s2c
if-no-files-found: error
upload-to-release:
permissions:
contents: write
deployments: write
runs-on: ubuntu-latest
needs: create-release-binaries
steps:
- name: Download release artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: ${{ env.file-name }}-*-binaries
merge-multiple: false
- name: Download script artifact
uses: actions/download-artifact@v4
with:
path: artifacts
name: s2c
- name: Compress binaries
run: |
cd artifacts
zip -r s2c-linuxX64-binaries.zip s2c-linuxX64-binaries
zip -r s2c-macosArm64-binaries.zip s2c-macosArm64-binaries
zip -r s2c-macosX64-binaries.zip s2c-macosX64-binaries
zip -r s2c-mingwX64-binaries.zip s2c-mingwX64-binaries
- name: Display structure of downloaded files
run: ls -R
- name: Create Github release
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: development
draft: true # For test purposes. Should be false
prerelease: true # For test purposes. Should be false
files: |
artifacts/s2c-linuxX64-binaries.zip
artifacts/s2c-macosArm64-binaries.zip
artifacts/s2c-macosX64-binaries.zip
artifacts/s2c-mingwX64-binaries.zip
artifacts/s2c