mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 23:42:00 +01:00
This workflow is not manually triggered and can create automatically the appropriate tag. The build number is not increase to the next multiple of ten, to stay in sync with the iOS releases, which seem to cause more trouble and often need reuploads. The individual steps have been moved out to their own files, for better readability. We also now build the app for all supported platforms.
187 lines
5.0 KiB
YAML
187 lines
5.0 KiB
YAML
name: Build release artefacts
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: Version to tag and release (X.Y.Z)
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
|
|
ci:
|
|
name: CI
|
|
uses: ./.github/workflows/ci.yml
|
|
|
|
determine_version:
|
|
needs: ci
|
|
name: Prepare
|
|
uses: ./.github/workflows/bump-version.yml
|
|
with:
|
|
app_version: ${{ github.event.inputs.version }}
|
|
|
|
build_linux:
|
|
name: Linux
|
|
needs: determine_version
|
|
uses: ./.github/workflows/build-linux.yml
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
|
|
|
|
build_android:
|
|
name: Android
|
|
needs: determine_version
|
|
uses: ./.github/workflows/build-android.yml
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
secrets:
|
|
DECRYPTKEY_PLAYSTORE_SIGNING_KEY: ${{ secrets.DECRYPTKEY_PLAYSTORE_SIGNING_KEY }}
|
|
DECRYPTKEY_PROPERTIES: ${{ secrets.DECRYPTKEY_PROPERTIES }}
|
|
|
|
build_apple:
|
|
name: Apple
|
|
needs: determine_version
|
|
uses: ./.github/workflows/build-apple.yml
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
|
|
build_windows:
|
|
name: Microsoft
|
|
needs: determine_version
|
|
uses: ./.github/workflows/build-windows.yml
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
|
|
upload_play_store:
|
|
name: Upload to Play Store
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- build_android
|
|
- build_linux
|
|
steps:
|
|
- name: Checkout application
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
|
|
- name: Download builds
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: /tmp/
|
|
|
|
- name: Setup Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 3.4
|
|
|
|
- name: Decrypt config files
|
|
run: |
|
|
cd ./fastlane/metadata/envfiles
|
|
chmod +x ./decrypt_secrets.sh
|
|
./decrypt_secrets.sh
|
|
shell: bash
|
|
env:
|
|
DECRYPTKEY_PLAYSTORE: ${{ secrets.DECRYPTKEY_PLAYSTORE }}
|
|
|
|
- name: Upload build to Play Store
|
|
run: |
|
|
mkdir -p ./build/app/outputs/bundle/release/
|
|
cp /tmp/builds-aab/app-release.aab ./build/app/outputs/bundle/release/app-release.aab
|
|
bundle install
|
|
bundle exec fastlane android production
|
|
|
|
#
|
|
# This is currently commented out since the iOS upload are currently being handled
|
|
# by the fastlane script in the ios folder. We use the account of pthaler for this
|
|
# and he runs the script manually.
|
|
#
|
|
|
|
# upload_app_store:
|
|
# name: Upload to App Store (placeholder)
|
|
# runs-on: ubuntu-latest
|
|
# needs:
|
|
# - build_android
|
|
# - build_apple
|
|
# steps:
|
|
# - name: Checkout application
|
|
# uses: actions/checkout@v4
|
|
# with:
|
|
# ref: feature/build-process
|
|
# # ref: ${{ github.event.inputs.version }}
|
|
#
|
|
# - name: Common flutter setup
|
|
# uses: ./.github/actions/flutter-common
|
|
#
|
|
# - name: Download builds
|
|
# uses: actions/download-artifact@v4
|
|
# with:
|
|
# path: /tmp/
|
|
#
|
|
# - name: Upload build to App Store
|
|
# run: |
|
|
# # bundle exec fastlane todo
|
|
|
|
make_gh_release:
|
|
if: false
|
|
name: Make Github Release
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- upload_play_store
|
|
- build_linux
|
|
- build_windows
|
|
- build_apple
|
|
|
|
steps:
|
|
- name: Download builds
|
|
uses: actions/download-artifact@v4
|
|
|
|
- name: Make Github release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
tag_name: ${{ inputs.version }}
|
|
files: |
|
|
builds-aab/app-release.aab
|
|
builds-apk/app-release.apk
|
|
builds-linux/wger-linux-x86_64.tar.gz
|
|
builds-linux/wger-linux-x86_64.sha256
|
|
builds-ios/Runner.app
|
|
builds-macos/wger.app
|
|
|
|
generate_fathub_manifest:
|
|
if: false
|
|
runs-on: ubuntu-latest
|
|
name: Upload flathub manifest
|
|
needs:
|
|
- make_gh_release
|
|
steps:
|
|
- name: Checkout application
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.inputs.version }}
|
|
|
|
- name: Common flutter setup
|
|
uses: ./.github/actions/flutter-common
|
|
|
|
- name: Generate manifest
|
|
run: |
|
|
cd flatpak/scripts
|
|
dart pub get
|
|
dart manifest_generator.dart --meta ../flatpak_meta.json --github
|
|
mkdir ../../flathub
|
|
cp flatpak_generator_exports/de.wger.flutter.json ../../flathub
|
|
cp flatpak_generator_exports/flathub.json ../../flathub
|
|
|
|
- name: Push updated config to flathub repository
|
|
uses: cpina/github-action-push-to-another-repository@main
|
|
env:
|
|
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
|
|
with:
|
|
source-directory: flathub
|
|
destination-github-username: wger-project
|
|
destination-repository-name: de.wger.flutter
|
|
user-email: github-actions@github.com
|
|
target-branch: release-${{ github.event.inputs.version }}
|
|
create-target-branch-if-needed: true
|
|
commit-message: Update to ${{ github.event.inputs.version }}
|
|
|