Skip to content

Build Fladder

Build Fladder #514

Workflow file for this run

name: Build Fladder
on:
push:
tags:
- "v*"
branches:
- master
pull_request:
paths:
- pubspec.yaml
- .github/workflows/build.yml
- .fvmrc
types:
- opened
- reopened
schedule:
# Run nightly at midnight UTC, but only if there were changes to develop
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
build_type:
description: "Build type (release, nightly)"
required: false
default: "nightly"
type: choice
options:
- release
- nightly
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
NIGHTLY_TAG: nightly
jobs:
# Check if workflow should run based on trigger conditions
check-trigger:
runs-on: ubuntu-latest
outputs:
should_run: ${{ steps.check.outputs.should_run }}
build_type: ${{ steps.check.outputs.build_type }}
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0
- name: Check if should run and determine build type
id: check
run: |
# Determine build type based on trigger and input
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
BUILD_TYPE="${{ github.event.inputs.build_type }}"
elif [[ "${{ startsWith(github.ref, 'refs/tags/v') }}" == "true" ]]; then
BUILD_TYPE="release"
elif [[ "${{ github.event_name }}" == "schedule" ]]; then
# Check if there were commits to develop in the last 24 hours
git checkout develop
COMMITS_LAST_24H=$(git log --since="24 hours ago" --oneline | wc -l)
if [[ $COMMITS_LAST_24H -gt 0 ]]; then
BUILD_TYPE="nightly"
else
echo "No commits to develop in the last 24 hours, skipping nightly build"
echo "should_run=false" >> $GITHUB_OUTPUT
exit 0
fi
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
BUILD_TYPE="nightly"
else
# For PRs and other events, build but don't release
BUILD_TYPE="development"
fi
echo "build_type=${BUILD_TYPE}" >> $GITHUB_OUTPUT
echo "should_run=true" >> $GITHUB_OUTPUT
echo "Build type determined: ${BUILD_TYPE}"
fetch-info:
needs: [check-trigger]
if: needs.check-trigger.outputs.should_run == 'true'
runs-on: ubuntu-latest
outputs:
version_name: ${{ steps.fetch.outputs.version_name }}
flutter_version: ${{ steps.fetch.outputs.flutter_version }}
nightly_version: ${{ steps.fetch.outputs.nightly_version }}
build_type: ${{ needs.check-trigger.outputs.build_type }}
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0
- name: Fetch version name and create nightly version
id: fetch
run: |
# Extract version_name from pubspec.yaml
VERSION_NAME=$(grep '^version:' pubspec.yaml | cut -d ':' -f2 | cut -d '+' -f1 | tr -d ' ')
echo "version_name=${VERSION_NAME}" >> "$GITHUB_OUTPUT"
# Extract flutter_version from .fvmrc
FLUTTER_VERSION=$(jq -r '.flutter' .fvmrc)
echo "flutter_version=${FLUTTER_VERSION}" >> "$GITHUB_OUTPUT"
# Create nightly version if needed
if [[ "${{ needs.check-trigger.outputs.build_type }}" == "nightly" ]]; then
NIGHTLY_VERSION="${VERSION_NAME}-nightly"
echo "nightly_version=${NIGHTLY_VERSION}" >> "$GITHUB_OUTPUT"
echo "Nightly version: $NIGHTLY_VERSION"
fi
# Print versions for logging
echo "Base version: $VERSION_NAME"
echo "Flutter version: $FLUTTER_VERSION"
shell: bash
build-android:
needs: [fetch-info]
runs-on: ubuntu-latest
outputs:
artifact_suffix: ${{ env.ARTIFACT_SUFFIX }}
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Determine Build Type
run: |
echo "ARTIFACT_SUFFIX=${{ needs.fetch-info.outputs.build_type }}" >> $GITHUB_ENV
echo "ARTIFACT_SUFFIX=${{ needs.fetch-info.outputs.build_type }}" >> $GITHUB_OUTPUT
- name: Decode Keystore for release
env:
ENCODED_STRING: ${{ secrets.KEYSTORE_BASE_64 }}
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
RELEASE_KEYSTORE_ALIAS: ${{ secrets.RELEASE_KEYSTORE_ALIAS }}
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
run: |
echo "$ENCODED_STRING" | base64 -d > android/app/keystore.jks
# Create the key.properties file
cat > android/app/key.properties <<EOF
storePassword=$RELEASE_KEYSTORE_PASSWORD
keyPassword=$RELEASE_KEY_PASSWORD
keyAlias=$RELEASE_KEYSTORE_ALIAS
EOF
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"
cache: "gradle"
check-latest: true
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Get dependencies
run: flutter pub get
- name: Build Android APK and AAB
run: |
flutter build apk --release --build-number=${{github.run_number}} --flavor production
flutter build appbundle --release --build-number=${{github.run_number}} --flavor production
- name: Rename APK and AAB
run: |
mkdir -p build/app/outputs/android_artifacts
mv build/app/outputs/flutter-apk/app-production-release.apk "build/app/outputs/android_artifacts/${{ env.ARTIFACT_SUFFIX }}.apk"
mv build/app/outputs/bundle/productionRelease/app-production-release.aab "build/app/outputs/android_artifacts/${{ env.ARTIFACT_SUFFIX }}.aab"
- name: Archive Android artifacts
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-android
path: build/app/outputs/android_artifacts/
build-windows:
runs-on: windows-2022
needs: [fetch-info]
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Get dependencies
run: flutter pub get
- name: Build Windows EXE
run: flutter build windows --build-number=${{ github.run_number }}
- name: Compile Inno Setup installer
uses: Minionguyjpro/Inno-Setup-Action@v1.2.2
with:
path: windows/windows_setup.iss
options: /O+ /DFLADDER_VERSION="${{ needs.fetch-info.outputs.version_name }}"
- name: Archive Windows portable artifact
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-windows-portable
path: build\windows\x64\runner\Release\
- name: Archive Windows installer artifact
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-windows-installer
path: windows\Output\fladder_setup.exe
build-ios:
runs-on: macos-latest
needs: [fetch-info]
steps:
# - uses: maxim-lobanov/setup-xcode@v1.6.0
# with:
# xcode-version: latest-stable
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Get dependencies
run: flutter pub get
- name: Build iOS app
run: flutter build ipa --no-codesign --flavor production --build-number=${{ github.run_number }}
- name: Create unsigned IPA
run: |
cd build/ios/archive/Runner.xcarchive/Products/Applications/
mkdir Payload
mv Runner.app Payload/
zip -r iOS.ipa Payload
- name: Archive iOS IPA artifact
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-iOS
path: build/ios/archive/Runner.xcarchive/Products/Applications/iOS.ipa
build-macos:
runs-on: macos-latest
needs: [fetch-info]
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Get dependencies
run: flutter pub get
- name: Build macOS app
run: flutter build macos --flavor production --build-number=${{ github.run_number }}
- name: Ensure correct app name casing
run: |
APP_DIR="build/macos/Build/Products/Release-production"
mv "$APP_DIR/fladder.app" "$APP_DIR/Fladder.app"
- name: Install create-dmg
run: brew install create-dmg
- name: Create DMG with custom background
run: ./scripts/create_dmg.sh
- name: Archive macOS artifact
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-macOS
path: build/macos/Build/Products/Release-production/macOS.dmg
build-linux:
runs-on: ubuntu-latest
needs: [fetch-info]
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Update build number in pubspec.yaml
run: |
sed -i -E 's/(version: [0-9]+\.[0-9]+\.[0-9]+\+)[0-9]+/\1${{ github.run_number }}/' pubspec.yaml
- name: Get dependencies
run: flutter pub get
- name: Get packages
run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build libgtk-3-dev libmpv-dev patchelf cmake clang libfuse2
- name: Build Linux app
run: flutter build linux --release --build-number=${{ github.run_number }}
- name: Fix RPATH
run: |
for lib in "build/linux/x64/release/bundle/lib"/*.so; do
[[ -f "$lib" && -n "$(patchelf --print-rpath "$lib")" ]] && \
patchelf --set-rpath '$ORIGIN' "$lib"
done
patchelf --set-rpath '$ORIGIN/lib' "build/linux/x64/release/bundle/Fladder"
- name: Archive Linux artifact
uses: actions/upload-artifact@v4
with:
name: fladder-linux
path: build/linux/x64/release/bundle
- name: Build AppImage
run: |
VERSION_TO_USE="${{ needs.fetch-info.outputs.version_name }}"
sed -i -E "s/(version:\\s*)latest/\\1${VERSION_TO_USE}/" AppImageBuilder.yml
wget -O appimage-builder-x86_64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
chmod +x appimage-builder-x86_64.AppImage
sudo mv appimage-builder-x86_64.AppImage /usr/local/bin/appimage-builder
appimage-builder --recipe AppImageBuilder.yml
- name: Archive Linux artifact
uses: actions/upload-artifact@v4
with:
name: fladder-linux-appimage
path: |
Fladder_x86_64.AppImage
Fladder_x86_64.AppImage.zsync
build-linux-flatpak:
runs-on: ubuntu-latest
if: needs.fetch-info.outputs.build_type == 'release' || needs.fetch-info.outputs.build_type == 'nightly'
needs: [fetch-info, build-linux]
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-46
options: --privileged
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Download Artifacts Linux
uses: actions/download-artifact@v4
with:
name: fladder-linux
path: build/linux/x64/release/bundle
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: Fladder-Linux.flatpak
manifest-path: flatpak/nl.jknaapen.fladder.yaml
- name: Archive Linux Flatpak bundle
uses: actions/upload-artifact@v4
with:
name: fladder-linux-flatpak
path: Fladder-Linux.flatpak
build-web:
runs-on: ubuntu-latest
needs: [fetch-info]
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Set up Flutter
uses: subosito/flutter-action@v2.19.0
with:
channel: "stable"
flutter-version: ${{needs.fetch-info.outputs.flutter_version}}
cache: true
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
- name: Get dependencies
run: flutter pub get
- name: Build web app
run: |
flutter build web --release --build-number=${{github.run_number}}
- name: Archive web artifact
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-web
path: build/web
- name: Build Github pages web
if: needs.fetch-info.outputs.build_type == 'release'
run: flutter build web --base-href /${{ github.event.repository.name }}/ --release --build-number=$GITHUB_RUN_NUMBER
- name: Archive web pages artifact
if: needs.fetch-info.outputs.build_type == 'release'
uses: actions/upload-artifact@v4.0.0
with:
name: fladder-web-pages
path: build/web
create_release:
name: Create Release
needs:
- fetch-info
- build-android
- build-windows
- build-ios
- build-macos
- build-linux
- build-linux-flatpak
- build-web
runs-on: ubuntu-latest
if: needs.fetch-info.outputs.build_type == 'release' || needs.fetch-info.outputs.build_type == 'nightly'
permissions:
contents: write
steps:
- name: Checkout repository
if: needs.fetch-info.outputs.build_type == 'nightly'
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0
- name: Set version variables
id: version
run: |
if [[ "${{ needs.fetch-info.outputs.build_type }}" == "nightly" ]]; then
echo "version=${{ needs.fetch-info.outputs.nightly_version }}" >> $GITHUB_OUTPUT
else
echo "version=${{ needs.fetch-info.outputs.version_name }}" >> $GITHUB_OUTPUT
fi
- name: Delete existing nightly release
if: needs.fetch-info.outputs.build_type == 'nightly'
run: |
# Delete existing nightly release and tag with better error handling
echo "Checking for existing nightly release..."
if gh release view ${{ env.NIGHTLY_TAG }} >/dev/null 2>&1; then
echo "Deleting existing nightly release..."
gh release delete ${{ env.NIGHTLY_TAG }} --yes --cleanup-tag
else
echo "No existing nightly release found."
fi
# Clean up any orphaned tags
if git tag -l | grep -q "^${{ env.NIGHTLY_TAG }}$"; then
echo "Deleting orphaned nightly tag..."
git push origin --delete ${{ env.NIGHTLY_TAG }} || true
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate changelog
if: needs.fetch-info.outputs.build_type == 'nightly'
id: changelog
run: |
# Get the latest stable release tag for comparison
LATEST_STABLE_RELEASE=$(gh release list --limit 50 --exclude-drafts --json tagName,isPrerelease --jq '.[] | select(.isPrerelease == false) | .tagName' | head -1 || echo "")
# Create new changelog with comparison link
cat > changelog.md <<-EOF
# $(date -u "+%Y-%m-%d %H:%M:%S UTC")
This is an automated nightly build containing the latest changes from the develop branch.
**⚠️ Warning:** This is a development build and may contain bugs or incomplete features.
EOF
# Add comparison link if we have a latest stable release
if [ -n "$LATEST_STABLE_RELEASE" ]; then
cat >> changelog.md <<-EOF
## 📋 What's Changed
See all changes since the latest release: [Compare $LATEST_STABLE_RELEASE...HEAD](https://github.com/${{ github.repository }}/compare/$LATEST_STABLE_RELEASE...HEAD)
EOF
else
cat >> changelog.md <<-EOF
## 📋 What's Changed
See all changes: [View commits](https://github.com/${{ github.repository }}/commits/develop)
EOF
fi
# Add build metadata
cat >> changelog.md <<-EOF
---
📅 **Build Date:** $(date -u "+%Y-%m-%d %H:%M:%S UTC")
🔧 **Build Number:** ${{ github.run_number }}
📝 **Commit:** ${{ github.sha }}
🌿 **Branch:** develop
EOF
echo "changelog_file=changelog.md" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download Artifacts Android
uses: actions/download-artifact@v4
with:
name: fladder-android
path: fladder-android
- name: Move Android
run: |
mv fladder-android/${{ needs.build-android.outputs.artifact_suffix }}.apk Fladder-Android-${{ steps.version.outputs.version }}.apk
mv fladder-android/${{ needs.build-android.outputs.artifact_suffix }}.aab Fladder-Android-${{ steps.version.outputs.version }}.aab
- name: Download Windows portable artifact
uses: actions/download-artifact@v4
with:
name: fladder-windows-portable
path: fladder-windows-portable
- name: Compress Windows
run: |
cd fladder-windows-portable
zip -r ../Fladder-Windows-${{ steps.version.outputs.version }}.zip .
- name: Download Windows installer artifact
uses: actions/download-artifact@v4
with:
name: fladder-windows-installer
path: fladder-windows-installer
- name: Rename Windows installer
run: mv fladder-windows-installer/fladder_setup.exe Fladder-Windows-${{ steps.version.outputs.version }}-Setup.exe
- name: Download Artifacts iOS
uses: actions/download-artifact@v4
with:
name: fladder-iOS
path: fladder-iOS
- name: Move iOS
run: mv fladder-iOS/iOS.ipa Fladder-iOS-${{ steps.version.outputs.version }}.ipa
- name: Download Artifacts macOS
uses: actions/download-artifact@v4
with:
name: fladder-macOS
path: fladder-macOS
- name: Move macOS
run: mv fladder-macOS/macOS.dmg Fladder-macOS-${{ steps.version.outputs.version }}.dmg
- name: Download Artifacts Linux
uses: actions/download-artifact@v4
with:
name: fladder-linux
path: fladder-linux
- name: Compress Linux
run: |
cd fladder-linux
zip -r ../Fladder-Linux-${{ steps.version.outputs.version }}.zip .
- name: Download Artifacts Linux Flatpak
if: needs.fetch-info.outputs.build_type == 'release'
uses: actions/download-artifact@v4
with:
name: fladder-linux-flatpak
path: fladder-linux-flatpak
- name: Move Linux Flatpak
if: needs.fetch-info.outputs.build_type == 'release'
run: mv fladder-linux-flatpak/Fladder-Linux.flatpak Fladder-Linux-${{ steps.version.outputs.version }}.flatpak
- name: Download Artifacts Linux AppImage
uses: actions/download-artifact@v4
with:
name: fladder-linux-appimage
path: fladder-linux-appimage
- name: Move Linux AppImages
run: |
mv fladder-linux-appimage/Fladder_x86_64.AppImage Fladder-Linux-${{ steps.version.outputs.version }}.AppImage
mv fladder-linux-appimage/Fladder_x86_64.AppImage.zsync Fladder-Linux-${{ steps.version.outputs.version }}.AppImage.zsync
- name: Download Artifacts Web
uses: actions/download-artifact@v4
with:
name: fladder-web
path: fladder-web
- name: Compress Web
run: |
cd fladder-web
zip -r ../Fladder-Web-${{ steps.version.outputs.version }}.zip .
- name: Create Release
uses: softprops/action-gh-release@v2.2.2
with:
tag_name: ${{ needs.fetch-info.outputs.build_type == 'nightly' && env.NIGHTLY_TAG || github.ref_name }}
name: ${{ needs.fetch-info.outputs.build_type == 'nightly' && format('🌙 Nightly Build - {0}', steps.version.outputs.version) || '' }}
body_path: ${{ needs.fetch-info.outputs.build_type == 'nightly' && 'changelog.md' || '' }}
draft: ${{ needs.fetch-info.outputs.build_type == 'release' }}
prerelease: ${{ needs.fetch-info.outputs.build_type == 'nightly' }}
make_latest: ${{ needs.fetch-info.outputs.build_type == 'release' }}
generate_release_notes: ${{ needs.fetch-info.outputs.build_type == 'release' }}
fail_on_unmatched_files: true
files: |
Fladder-Android-${{ steps.version.outputs.version }}.apk
Fladder-Android-${{ steps.version.outputs.version }}.aab
Fladder-Windows-${{ steps.version.outputs.version }}-Setup.exe
Fladder-Windows-${{ steps.version.outputs.version }}.zip
Fladder-iOS-${{ steps.version.outputs.version }}.ipa
Fladder-macOS-${{ steps.version.outputs.version }}.dmg
Fladder-Web-${{ steps.version.outputs.version }}.zip
Fladder-Linux-${{ steps.version.outputs.version }}.zip
Fladder-Linux-${{ steps.version.outputs.version }}.AppImage
Fladder-Linux-${{ steps.version.outputs.version }}.AppImage.zsync
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add Flatpak to release
if: needs.fetch-info.outputs.build_type == 'release'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: |
Fladder-Linux-${{ steps.version.outputs.version }}.flatpak
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release_play_console:
name: Upload AAB to Google Play Console
needs:
- fetch-info
- create_release
- build-android
runs-on: ubuntu-latest
steps:
- name: Download Artifacts Android
uses: actions/download-artifact@v4
with:
name: fladder-android
path: fladder-android
- name: Upload AAB to Google Play Console
uses: r0adkll/upload-google-play@v1.1.3
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: "nl.jknaapen.fladder"
releaseFiles: "fladder-android/${{ needs.build-android.outputs.artifact_suffix }}.aab"
track: ${{ needs.fetch-info.outputs.build_type == 'nightly' && 'internal' || 'production' }}
status: ${{ needs.fetch-info.outputs.build_type == 'nightly' && 'completed' || 'draft' }}
releaseName: "${{ github.run_number }} (${{ needs.fetch-info.outputs.version_name }})"
release_web:
name: Release Web
needs:
- fetch-info
- create_release
runs-on: ubuntu-latest
if: needs.fetch-info.outputs.build_type == 'release'
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Download Artifacts Web
uses: actions/download-artifact@v4
with:
name: fladder-web
path: build/web
- name: Deploy to ghcr.io
uses: mr-smithers-excellent/docker-build-push@v6
with:
image: fladder
addLatest: true
multiPlatform: true
platform: linux/amd64,linux/arm64,linux/arm/v7
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy rootless-image to ghcr.io
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: Dockerfile-rootless
image: fladder-rootless
addLatest: true
multiPlatform: true
platform: linux/amd64,linux/arm64,linux/arm/v7
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Clean builds folder
run: rm -rf build/web
- name: Download Artifacts Web
uses: actions/download-artifact@v4
with:
name: fladder-web-pages
path: build/web
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/web
# Winget package submission
# winget-package-submit:
# runs-on: ubuntu-latest
# needs: [check-trigger, create_release]
# strategy:
# matrix:
# include:
# - build_type: release
# identifier: DonutWare.Fladder
# max_versions: "0"
# - build_type: nightly
# identifier: DonutWare.Fladder.Nightly
# max_versions: "1"
# steps:
# - name: Submit to Winget (${{ matrix.build_type }})
# if: needs.check-trigger.outputs.build_type == matrix.build_type
# uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f
# with:
# identifier: ${{ matrix.identifier }}
# installers-regex: 'Fladder-Windows-.*-Setup\.exe$'
# token: ${{ secrets.WINGET_TOKEN }}
# max-versions-to-keep: ${{ matrix.max_versions || '' }}
# release-tag: ${{ matrix.build_type == 'nightly' && env.NIGHTLY_TAG || github.ref_name }}