# 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: 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 update 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: 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: 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