gedaechtnas/.github/workflows/build.yml
2025-05-03 19:01:24 +02:00

148 lines
3.7 KiB
YAML

# What software is installed by default:
# https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
name: build
on:
push:
pull_request:
defaults:
run:
shell: bash
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Update packages
run: |
sudo apt update
sudo apt upgrade
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up rust
run: rustup update
# https://github.com/tauri-apps/tauri-action?tab=readme-ov-file#usage
# https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/customizing-github-hosted-runners#installing-software-on-ubuntu-runners
- name: Install tauri dependencies
run: sudo apt install libwebkit2gtk-4.1-dev
- name: Build
run: ./meta/build
- name: Upload
uses: actions/upload-artifact@v4
with:
name: gdn-linux
path: |
target/release/gdn-cli
target/release/gdn-app
build-windows:
runs-on: windows-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Update packages
run: |
sudo apt update
sudo apt upgrade
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up rust
run: rustup update
- name: Build
run: ./meta/build
- name: Upload
uses: actions/upload-artifact@v4
with:
name: gdn-windows
path: |
target/release/gdn-cli.exe
target/release/gdn-app.exe
build-android:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Update packages
run: |
sudo apt update
sudo apt upgrade
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 10
# https://v2.tauri.app/start/prerequisites/#android
- name: Set up rust
run: |
rustup update
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
# https://v2.tauri.app/distribute/sign/android/
- name: Set up Android signing
run: |
cd gdn-app/src-tauri/gen/android
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > key.properties
echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> key.properties
base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks
echo "storeFile=$RUNNER_TEMP/keystore.jks" >> key.properties
- name: Build
run: |
export NDK_HOME="$ANDROID_NDK_HOME"
./meta/build-android
- name: Upload
uses: actions/upload-artifact@v4
with:
name: gdn-android
path: target/release/gdn-app.apk
release:
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
needs:
- build-linux
- build-windows
- build-android
permissions:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Zip artifacts
run: |
zip -r gdn-linux.zip gdn-linux
zip -r gdn-windows.zip gdn-windows
mv gdn-android/gdn-app.apk gdn-android.apk
- name: Create new release
uses: softprops/action-gh-release@v2
with:
body: Automated release
files: |
gdn-linux.zip
gdn-windows.zip
gdn-android.apk