Skip to content

chore: update readme #18

chore: update readme

chore: update readme #18

Workflow file for this run

name: Build, Release and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
permissions:
contents: read
pages: write
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: subosito/flutter-action@v2
with:
channel: "stable"
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
- name: Get version from pubspec.yaml
id: version
shell: bash
run: |
VERSION=$(grep 'version:' pubspec.yaml | awk '{print $2}')
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Build Web
run: flutter build web --release
- name: add privacy.html to output
run: cp privacy.html build/web/privacy.html
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./build/web"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
- name: Build Android APK
if: matrix.os == 'ubuntu-latest'
run: flutter build apk --release
# - name: Build Linux
# if: matrix.os == 'ubuntu-latest'
# run: |
# flutter config --enable-linux-desktop
# flutter build linux --release
# cd build/linux/x64/release/bundle
# tar -czf ../../../../../linux-release.tar.gz .
# - name: Build Windows
# if: matrix.os == 'windows-latest'
# run: |
# flutter config --enable-windows-desktop
# flutter build windows --release
# - name: Build macOS
# if: matrix.os == 'macos-latest'
# run: |
# flutter config --enable-macos-desktop
# flutter build macos --release
# cd build/macos/Build/Products/Release
# zip -r ../../../../../macos-release.zip *.app
- name: Create Release
id: create_release
if: matrix.os == 'ubuntu-latest'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.version.outputs.version }}
release_name: Release v${{ steps.version.outputs.version }}
draft: false
prerelease: false
- name: Upload Android Build
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/app/outputs/flutter-apk/app-release.apk
asset_name: passbag-${{ steps.version.outputs.version }}.apk
asset_content_type: application/vnd.android.package-archive
# - name: Upload Linux Build
# if: matrix.os == 'ubuntu-latest'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: linux-release.tar.gz
# asset_name: app-${{ steps.version.outputs.version }}-linux.tar.gz
# asset_content_type: application/gzip
# - name: Upload Windows Build
# if: matrix.os == 'windows-latest'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: build/windows/runner/Release
# asset_name: app-${{ steps.version.outputs.version }}-windows.zip
# asset_content_type: application/zip
# - name: Upload macOS Build
# if: matrix.os == 'macos-latest'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: macos-release.zip
# asset_name: app-${{ steps.version.outputs.version }}-macos.zip
# asset_content_type: application/zip
- name: Deploy to Vercel
if: matrix.os == 'ubuntu-latest'
run: vercel --token ${{ secrets.VERCEL_TOKEN }}
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}