Skip to content

change: ruby-version: 2.7 => ruby-version: 3.3 #19

change: ruby-version: 2.7 => ruby-version: 3.3

change: ruby-version: 2.7 => ruby-version: 3.3 #19

name: Release with Tag
on:
push:
tags:
- '*'
jobs:
## ======================================================================================================
upload_asset_windows:
name: Upload Asset on Windows
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Remove Name Conflict
shell: pwsh
run: mv C:\msys64\usr\bin\link.exe C:\msys64\usr\bin\msys-link.exe
- name: Run Buildscript
run: bundle exec rake prepare_library_windows
- name: Install Dependency x86_64
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86_64
- name: Run Buildscript (x86_64)
run: bundle exec rake update_library_windows_x64
- name: Install Dependency x86
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: Run Buildscript (x86)
run: bundle exec rake update_library_windows_x86
- name: Install Dependency x86_arm64
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86_arm64
- name: Run Buildscript (x86_arm64)
run: bundle exec rake update_library_windows_arm64
- name: Run Zip
run: bundle exec rake zip_library
- name: Print MD5
run: bundle exec rake print_lib_md5
- name: Rename lib.zip
shell: pwsh
run: mv lib.zip windows.zip
- name: 🎁⏫ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: artifact-windows
path: windows.zip
if-no-files-found: error
retention-days: 1
compression-level: 0
## ======================================================================================================
upload_asset_linux:
name: Upload Asset on Linux
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run Buildscript
run: |
bundle exec rake update_library_linux
bundle exec rake zip_library
- name: Print MD5
run: bundle exec rake print_lib_md5
- name: Rename lib.zip
run: mv lib.zip linux.zip
- name: 🎁⏫ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: artifact-linux
path: linux.zip
if-no-files-found: error
retention-days: 1
compression-level: 0
## ======================================================================================================
upload_asset_android:
name: Upload Asset on Linux (Android)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Android NDK
uses: nttld/setup-ndk@v1
with:
ndk-version: r25c
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run Buildscript
run: |
bundle exec rake update_library_android
bundle exec rake zip_library
- name: Print MD5
run: bundle exec rake print_lib_md5
- name: Rename lib.zip
run: mv lib.zip android.zip
- name: 🎁⏫ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: artifact-android
path: android.zip
if-no-files-found: error
retention-days: 1
compression-level: 0
## ======================================================================================================
upload_asset_macos:
name: Upload Asset on macOS
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Dependency
run: brew install coreutils automake
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run Buildscript
run: |
bundle exec rake update_library_macos
bundle exec rake zip_library
- name: Print MD5
run: bundle exec rake print_lib_md5
- name: Rename lib.zip
run: mv lib.zip macos.zip
- name: 🎁⏫ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: artifact-macos
path: macos.zip
if-no-files-found: error
retention-days: 1
compression-level: 0
## ======================================================================================================
upload_asset_ios:
name: Upload Asset on macOS (iOS)
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Dependency
run: brew install coreutils automake
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run Buildscript
run: |
bundle exec rake update_library_ios
bundle exec rake zip_library
- name: Print MD5
run: bundle exec rake print_lib_md5
- name: Rename lib.zip
run: mv lib.zip ios.zip
- name: 🎁⏫ Upload Artifact
uses: actions/upload-artifact@v4
with:
name: artifact-ios
path: ios.zip
if-no-files-found: error
retention-days: 1
compression-level: 0
## ======================================================================================================
release:
needs: [upload_asset_windows, upload_asset_linux, upload_asset_android, upload_asset_macos, upload_asset_ios]
name: Write Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
sparse-checkout-cone-mode: false
sparse-checkout: |
CHANGELOG.md
- name: Make Directory For Download Artifacts
run: |
mkdir -p download-artifacts
- name: 🎁⏬ Download Artifact
uses: actions/download-artifact@v4
with:
path: download-artifacts
- name: Log artifact download
run: |
ls -alh
ls -alh download-artifacts
- name: Get Tagname
id: tag_name
run: |
echo "current_version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
shell: bash
- name: Changelog Reader
id: changelog_reader
uses: mindsers/changelog-reader-action@v2
with:
version: ${{ steps.tag_name.outputs.current_version }}
path: ./CHANGELOG.md
- name: 🚀 Release
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: false
name: ${{ github.ref_name }}
tag_name: ${{ github.ref }}
body: ${{ steps.changelog_reader.outputs.changes }}
fail_on_unmatched_files: true
files: |
./download-artifacts/artifact-android/android.zip
./download-artifacts/artifact-linux/linux.zip
./download-artifacts/artifact-windows/windows.zip
./download-artifacts/artifact-macos/macos.zip
./download-artifacts/artifact-ios/ios.zip