GitHub Workflows
This commit is contained in:
parent
6b225685ef
commit
712827d57b
|
@ -0,0 +1,58 @@
|
||||||
|
name: "Android Build"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ['v*']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
timeout-minutes: 25
|
||||||
|
steps:
|
||||||
|
- name: "Code Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Java Setup"
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
distribution: 'zulu'
|
||||||
|
java-version: '11'
|
||||||
|
|
||||||
|
- name: "Install Missing Packages"
|
||||||
|
run: sudo apt-get update -y && sudo apt-get install -y ninja-build libgtk-3-dev
|
||||||
|
|
||||||
|
- name: "Flutter Action"
|
||||||
|
uses: subosito/flutter-action@v2.12.0
|
||||||
|
with:
|
||||||
|
flutter-version: '3.16.9'
|
||||||
|
channel: 'stable'
|
||||||
|
|
||||||
|
- name: "Flutter: Doctor"
|
||||||
|
run: flutter doctor
|
||||||
|
|
||||||
|
- name: "Flutter: Get Packages"
|
||||||
|
run: flutter pub get
|
||||||
|
|
||||||
|
- name: Create key.properties
|
||||||
|
run: |
|
||||||
|
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > android/key.properties
|
||||||
|
echo "storePassword=${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" >> android/key.properties
|
||||||
|
echo "keyPassword=${{ secrets.ANDROID_KEY_PASSWORD }}" >> android/key.properties
|
||||||
|
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" >> android/key.properties
|
||||||
|
|
||||||
|
- name: "Flutter: Build Android APK"
|
||||||
|
run: flutter build apk
|
||||||
|
|
||||||
|
- name: "Flutter: Build Android AppBundle"
|
||||||
|
run: flutter build appbundle
|
||||||
|
|
||||||
|
- name: Release to GitHub
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "build/app/outputs/flutter-apk/app-release.apk,build/app/outputs/bundle/release/app-release.aab"
|
||||||
|
tag: ${{ steps.version.outputs.content }}
|
||||||
|
commit: ${{ github.sha }}
|
||||||
|
allowUpdates: true
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
name: "Linux ARM Build"
|
||||||
|
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ['v*']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
timeout-minutes: 25
|
||||||
|
steps:
|
||||||
|
- name: "Code Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Java Setup"
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
distribution: "zulu"
|
||||||
|
java-version: "11"
|
||||||
|
|
||||||
|
- name: Build Linux (arm64)
|
||||||
|
uses: uraimo/run-on-arch-action@v2
|
||||||
|
with:
|
||||||
|
arch: aarch64
|
||||||
|
distro: ubuntu_latest
|
||||||
|
githubToken: ${{ github.token }}
|
||||||
|
|
||||||
|
setup: |
|
||||||
|
mkdir -p "${PWD}/AppDir"
|
||||||
|
dockerRunArgs: |
|
||||||
|
--volume "${PWD}/AppDir:/AppDir"
|
||||||
|
|
||||||
|
install: |
|
||||||
|
echo Installing dependencies
|
||||||
|
apt-get update -qq -y
|
||||||
|
apt-get install -qq -y \
|
||||||
|
sudo \
|
||||||
|
bash curl file git unzip xz-utils zip \
|
||||||
|
clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev \
|
||||||
|
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good
|
||||||
|
|
||||||
|
echo Installing Flutter
|
||||||
|
git clone https://github.com/flutter/flutter.git -b stable --depth 1 /opt/flutter
|
||||||
|
/opt/flutter/bin/flutter doctor -v
|
||||||
|
|
||||||
|
run: |
|
||||||
|
echo Creating non-root user
|
||||||
|
useradd -m nonroot
|
||||||
|
chown -R nonroot /opt/flutter
|
||||||
|
chown -R nonroot .
|
||||||
|
|
||||||
|
echo Building
|
||||||
|
sudo -u nonroot /opt/flutter/bin/flutter build linux --target-platform linux-arm64
|
||||||
|
mv build/linux/arm64/release/bundle/* /AppDir/
|
||||||
|
chown -R nonroot /AppDir/
|
||||||
|
chmod -R a+rw /AppDir/
|
||||||
|
chmod +x /AppDir/dateapp
|
||||||
|
|
||||||
|
- name: Compress Flutter build
|
||||||
|
id: compress
|
||||||
|
run: |
|
||||||
|
archiveName="dateapp-linux-arm64.tar.gz"
|
||||||
|
echo "archiveName=$archiveName" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
sudo chown -R $USER:$USER .
|
||||||
|
|
||||||
|
tar -C AppDir -czf $archiveName .
|
||||||
|
|
||||||
|
- name: Release to GitHub
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "dateapp-linux-arm64.tar.gz"
|
||||||
|
tag: ${{ steps.version.outputs.content }}
|
||||||
|
commit: ${{ github.sha }}
|
||||||
|
allowUpdates: true
|
|
@ -0,0 +1,50 @@
|
||||||
|
name: "Linux x86_64"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ['v*']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
timeout-minutes: 25
|
||||||
|
steps:
|
||||||
|
- name: "Code Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Java Setup"
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
distribution: 'zulu'
|
||||||
|
java-version: '11'
|
||||||
|
|
||||||
|
- name: "Install Missing Packages"
|
||||||
|
run: sudo apt-get update -y && sudo apt-get install -y ninja-build libgtk-3-dev
|
||||||
|
|
||||||
|
- name: "Flutter Action"
|
||||||
|
uses: subosito/flutter-action@v2.12.0
|
||||||
|
with:
|
||||||
|
flutter-version: '3.16.9'
|
||||||
|
channel: 'stable'
|
||||||
|
|
||||||
|
- name: "Flutter: Doctor"
|
||||||
|
run: flutter doctor
|
||||||
|
|
||||||
|
- name: "Flutter: Get Packages"
|
||||||
|
run: flutter pub get
|
||||||
|
|
||||||
|
- name: "Linux: Build for Linux"
|
||||||
|
run: flutter build linux
|
||||||
|
|
||||||
|
- name: "Linux: Tar Linux package"
|
||||||
|
run: tar -C build/linux/x64/release/bundle -czf dateapp-linux-x64.tar.gz .
|
||||||
|
|
||||||
|
- name: Release to GitHub
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "dateapp-linux-x64.tar.gz"
|
||||||
|
tag: ${{ steps.version.outputs.content }}
|
||||||
|
commit: ${{ github.sha }}
|
||||||
|
allowUpdates: true
|
|
@ -0,0 +1,47 @@
|
||||||
|
name: "MacOS - Build"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ['v*']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: macos-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: "Code Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Flutter Action"
|
||||||
|
uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: 'stable'
|
||||||
|
architecture: x64
|
||||||
|
|
||||||
|
- name: BUILD_VERSION Env (stable)
|
||||||
|
if: ${{ inputs.channel == 'stable' }}
|
||||||
|
run: |
|
||||||
|
echo "BUILD_VERSION=${{ inputs.version }}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: "Flutter: Enable MacOS Desktop"
|
||||||
|
run: flutter config --enable-macos-desktop
|
||||||
|
|
||||||
|
- name: "Flutter: Build MacOS"
|
||||||
|
run: flutter build macos
|
||||||
|
|
||||||
|
- name: Package MacOS App
|
||||||
|
run: |
|
||||||
|
python3 -m pip install setuptools
|
||||||
|
npm install -g appdmg
|
||||||
|
mkdir -p build/${{ env.BUILD_VERSION }}
|
||||||
|
appdmg appdmg.json build/dateapp-macos-universal.dmg
|
||||||
|
|
||||||
|
- name: Release to GitHub
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "build/dateapp-macos-universal.dmg"
|
||||||
|
tag: ${{ steps.version.outputs.content }}
|
||||||
|
commit: ${{ github.sha }}
|
||||||
|
allowUpdates: true
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
name: Publish to GitHub Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
build
|
||||||
|
key: ${{ runner.OS }}-dateapp-ubuntu-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.OS }}-dateapp-ubuntu-
|
||||||
|
|
||||||
|
- name: Install Flutter
|
||||||
|
uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
cache: true
|
||||||
|
cache-key: 'flutter-:os:-:channel:-:version:-:arch:'
|
||||||
|
|
||||||
|
- name: Build web
|
||||||
|
run: flutter build web --release --web-renderer=canvaskit
|
||||||
|
|
||||||
|
- name: Upload Pages artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: build/web
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
|
||||||
|
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
||||||
|
permissions:
|
||||||
|
pages: write # to deploy to Pages
|
||||||
|
id-token: write # to verify the deployment originates from an appropriate source
|
||||||
|
|
||||||
|
# Deploy to the github-pages environment
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
|
||||||
|
# Specify runner + deployment step
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
|
@ -0,0 +1,39 @@
|
||||||
|
name: "Windows - Build"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ['v*']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: windows-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: "Code Checkout"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Flutter Action"
|
||||||
|
uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: 'beta'
|
||||||
|
|
||||||
|
- name: Generating Secrets
|
||||||
|
run: |
|
||||||
|
flutter config --enable-windows-desktop
|
||||||
|
flutter pub get
|
||||||
|
|
||||||
|
- name: Build Windows Executable
|
||||||
|
run: |
|
||||||
|
dart pub global activate flutter_distributor
|
||||||
|
make innoinstall
|
||||||
|
flutter_distributor package --platform=windows --targets=exe --skip-clean
|
||||||
|
mv dist/**/dateapp-*-windows-setup.exe dist/dateapp-windows-x86_64-setup.exe
|
||||||
|
|
||||||
|
- name: Release to GitHub
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: "dist/dateapp-windows-x86_64-setup.exe"
|
||||||
|
tag: ${{ steps.version.outputs.content }}
|
||||||
|
commit: ${{ github.sha }}
|
||||||
|
allowUpdates: true
|
Loading…
Reference in New Issue