CI for a mini app
Every command takes --json (one document on stdout, messages on stderr) and --no-input;
CI=true implies both plus --no-color. Exit codes are stable (see
Exit codes and diagnostics).
# .github/workflows/mini-app.yml
name: Mini app
on: [push, pull_request]
jobs:
check:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with: { flutter-version: 3.47.5, channel: stable, cache: true }
- name: Install minikit
run: |
git clone -b main https://x-access-token:${{ secrets.MINIKIT_REPO_TOKEN }}@github.com/mohamedyousef/mini_kit.git ~/minikit
echo "$HOME/minikit/bin" >> "$GITHUB_PATH"
- run: minikit doctor --json
- run: minikit validate --json
- run: minikit test
- run: minikit package --json --url https://cdn.example.com/${{ github.event.repository.name }}.zip
- uses: actions/upload-artifact@v4
with: { name: bundle, path: dist }
The toolkit repository is private: give the workflow a token that can read it. minikit package
fails with exit 65 when validation finds errors, so a broken bundle never becomes an artifact.