Skip to content

docs: add comprehensive privacy policy (#8) #8

docs: add comprehensive privacy policy (#8)

docs: add comprehensive privacy policy (#8) #8

Workflow file for this run

name: Release
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
release:
name: Release - Test, Build & Publish
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
# Generate GitHub App token for authentication
- name: Generate GitHub App Token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
# Setup
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.generate-token.outputs.token }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install semantic-release
run: |
npm install -g \
semantic-release@latest \
@semantic-release/git@latest \
@semantic-release/changelog@latest \
@semantic-release/exec@latest \
conventional-changelog-conventionalcommits@latest
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.35.4'
channel: 'stable'
cache: true
# Dependencies & Code Generation
- name: Install dependencies
run: flutter pub get
- name: Generate Drift code
run: dart run build_runner build --delete-conflicting-outputs
- name: Generate app icons
run: dart run flutter_launcher_icons
# Configure Android signing
- name: Decode keystore
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/upload-keystore.jks
shell: bash
- name: Create key.properties
run: |
cat > android/key.properties << EOF
storePassword=${{ secrets.KEYSTORE_PASSWORD }}
keyPassword=${{ secrets.KEY_PASSWORD }}
keyAlias=${{ secrets.KEY_ALIAS }}
storeFile=upload-keystore.jks
EOF
shell: bash
# Semantic Release (analyzes commits, builds artifacts, creates release with assets)
- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
run: npx semantic-release
# Upload to Google Play Store
- name: Upload to Google Play Store
if: success()
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.PLAY_STORE_SERVICE_ACCOUNT_JSON }}
packageName: com.michieldean.foster_squirrel
releaseFiles: build/app/outputs/bundle/release/*.aab
track: production
status: completed
whatsNewDirectory: distribution/whatsnew
mappingFile: android/build/app/outputs/mapping/release/mapping.txt