GitHub Actions

Publish patches from GitHub Actions with one click.

Set up the secrets

  1. Get a token

    Run overpush token where the project works. See Continuous integration.

  2. Add them to the repository

    In the repository on GitHub: Settings → Secrets and variables → Actions → New repository secret. Add OVERPUSH_TOKEN and OVERPUSH_API_BASE.

Workflow

Save as .github/workflows/patch.yml. Run it from the Actions tab with Run workflow.

name: patch-android
on:
  workflow_dispatch:
    inputs:
      rollout:
        description: Rollout percent
        default: "10"

jobs:
  patch:
    runs-on: ubuntu-latest
    env:
      OVERPUSH_TOKEN: ${{ secrets.OVERPUSH_TOKEN }}
      OVERPUSH_API_BASE: ${{ secrets.OVERPUSH_API_BASE }}
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: 3.41.4   # the version that built the release
      - run: curl -fsSL https://overpush.in/install.sh | bash
      - run: flutter pub get
      - run: ~/.overpush/bin/overpush patch android --yes --rollout-percent ${{ inputs.rollout }}
name: patch-ios
on:
  workflow_dispatch:
    inputs:
      rollout:
        description: Rollout percent
        default: "10"

jobs:
  patch:
    runs-on: macos-latest
    env:
      OVERPUSH_TOKEN: ${{ secrets.OVERPUSH_TOKEN }}
      OVERPUSH_API_BASE: ${{ secrets.OVERPUSH_API_BASE }}
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: 3.41.4   # the version that built the release
      - run: curl -fsSL https://overpush.in/install.sh | bash
      - run: flutter pub get
      - run: ~/.overpush/bin/overpush patch ios --yes --rollout-percent ${{ inputs.rollout }}

A patch needs no code signing. Releases do: to build iOS releases in CI, set up signing the way you would for flutter build ipa.

Patching a specific release

To patch something other than the newest release, add its version:

$ overpush patch android --yes --release-version 1.4.0+31
$ overpush patch ios --yes --release-version 1.4.0+31

Release ids are in the console's Releases tab.