chore: bump version #10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | |
PUBLISH_ENDPOINT: ${{ secrets.PUBLISH_ENDPOINT }} | |
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 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
- 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: | |
APP_TARGET_PLATFORM: "linux" | |
run: | | |
npm install --global pnpm || true | |
pnpm config set store-dir .pnpm-store | |
pnpm install | |
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: Build App (Windows) | |
env: | |
APP_TARGET_PLATFORM: "windows" | |
run: | | |
npm install --global pnpm || true | |
pnpm config set store-dir .pnpm-store | |
pnpm install | |
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/ | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
- name: Build App (MacOS) | |
env: | |
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 | |
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" | |
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 | |
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: | | |
b2 authorize-account ${{ secrets.AWS_ACCESS_KEY_ID }} ${{ secrets.AWS_SECRET_ACCESS_KEY }} > /dev/null 2>&1 | |
b2 sync --replaceNewer --noProgress release b2://${{ secrets.PUBLISH_BUCKET }}/app > /dev/null 2>&1 |