148 lines
3.7 KiB
YAML
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
|