Skip to content

fix: minor issues

fix: minor issues #41

Workflow file for this run

name: Release (Linux & Windows)
on:
push:
tags:
- v*
env:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
VUE_APP_SENTRY_DSN: ${{ secrets.VUE_APP_SENTRY_DSN }}
PUBLISH_BUCKET: ${{ secrets.PUBLISH_BUCKET }}
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# Cache for Gradle
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
- name: Build subprocess
env:
SUBPROCESS_SENTRY_DSN: ${{ secrets.SUBPROCESS_SENTRY_DSN }}
GITHUB_BRANCH: "release" # TODO: Resolve this properly for alpha and beta releases
run: |
cd subprocess
./gradlew clean build -si
- name: Build App (Windows & Linux)
env:
VUE_APP_PLATFORM: "electron"
APP_TARGET_PLATFORM: "linux"
run: |
npm install --global pnpm || true
pnpm config set store-dir .pnpm-store
pnpm install --no-frozen-lockfile
pnpm gen:license
pnpm build --publish always -l --x64 --arm64
- uses: actions/cache/save@v4
id: cache
name: Save pnpm modules
with:
path: .pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
# Upload the subprocess/build/libs/ directory as an artifact
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: subprocess-jar
path: |
subprocess/build/libs/
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: release-linux
path: |
release/ftb-app-*.deb
release/ftb-app-*.AppImage
release/ftb-app-*.rpm
release/*-linux.yml
release/*-linux-*.yml
build-windows:
runs-on: windows-latest
# Only run this job if the previous job was successful
needs: build-linux
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: subprocess-jar
path: subprocess/build/libs/
- name: Download AzureSignTool from nuget
run: |
dotnet tool install --global AzureSignTool --version 5.0.0
- name: Build App (Windows)
env:
VUE_APP_PLATFORM: "electron"
APP_TARGET_PLATFORM: "windows"
VUE_APP_TARGET_PLATFORM: "windows"
AZURE_KEY_VAULT_URL: ${{ secrets.AZURE_KEY_VAULT_URL }}
AZURE_KEY_VAULT_CLIENT_ID: ${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }}
AZURE_KEY_VAULT_CLIENT_SECRET: ${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }}
AZURE_KEY_VAULT_CERTIFICATE_NAME: ${{ secrets.AZURE_KEY_VAULT_CERTIFICATE_NAME }}
AZURE_KEY_VAULT_TENANT_ID: ${{ secrets.AZURE_KEY_VAULT_TENANT_ID }}
run: |
npm install --global pnpm || true
pnpm config set store-dir .pnpm-store
pnpm install --no-frozen-lockfile
pnpm gen:license
pnpm build --publish always -w --x64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: release-windows
path: |
release/ftb-app-*.exe
release/*.blockmap
release/latest.yml
release/alpha.yml
release/beta.yml
build-macos:
runs-on: macos-latest
# Only run this job if the previous job was successful
needs:
- build-linux
- build-windows
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: subprocess-jar
path: subprocess/build/libs/
# Needed for signing the jar as we use `jar`
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
- name: Build App (MacOS)
env:
VUE_APP_PLATFORM: "electron"
APP_TARGET_PLATFORM: "macos"
VUE_APP_TARGET_PLATFORM: "macos"
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.CSC_LINK }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
run: |
npm install --global pnpm || true
pnpm config set store-dir .pnpm-store
pnpm install --no-frozen-lockfile
pnpm gen:license
echo "$APPLE_API_KEY" > apple_api_key.p8
pnpm build --publish always -m --x64 --arm64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: release-macos
path: |
release/ftb-app-*.dmg
release/ftb-app-*.zip
release/*.blockmap
release/*-mac.yml
build-overwolf:
needs:
- build-linux
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: subprocess-jar
path: subprocess/build/libs/
- name: Restore pnpm
uses: actions/cache/restore@v4
id: cache
with:
path: .pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Build App (Overwolf)
env:
OW_CLI_API_KEY: ${{ secrets.OW_CLI_API_KEY }}
OW_CLI_EMAIL: ${{ secrets.OW_CLI_EMAIL }}
APP_TARGET_PLATFORM: "overwolf"
VUE_APP_TARGET_PLATFORM: "overwolf"
VUE_APP_PLATFORM: "overwolf"
run: |
cp subprocess/build/libs/meta.json overwolf/
cp subprocess/build/libs/java-licenses.json overwolf/
npm install --global pnpm || true
pnpm config set store-dir .pnpm-store
pnpm install --no-frozen-lockfile
pnpm gen:license
node overwolf/patchManifest.js
pnpm overwolf:build
node overwolf/packageOpk.js
echo "Signing OPK.."
pnpm ow opk sign -o overwolf/signed.opk overwolf/*.opk
pnpm ow opk upload -w true overwolf/signed.opk
release-artifacts:
needs:
- build-linux
- build-windows
- build-macos
runs-on: ubuntu-latest
steps:
- name: Download linux releases
uses: actions/download-artifact@v4
with:
name: release-linux
path: release/
- name: Download windows releases
uses: actions/download-artifact@v4
with:
name: release-windows
path: release/
- name: Download macos releases
uses: actions/download-artifact@v4
with:
name: release-macos
path: release/
- name: Get B2 client
shell: bash
run: |
wget -q -O /usr/local/bin/b2 https://github.com/Backblaze/B2_Command_Line_Tool/releases/latest/download/b2-linux
chmod +x /usr/local/bin/b2
- name: Upload
shell: bash
run: |
ls -la release
b2 authorize-account ${{ secrets.AWS_ACCESS_KEY_ID }} ${{ secrets.AWS_SECRET_ACCESS_KEY }} > /dev/null 2>&1
b2 sync --replace-newer --no-progress release b2://${{ secrets.PUBLISH_BUCKET }}/app