Skip to content

Publish to pub.dev

Publish to pub.dev #2

Workflow file for this run

name: Publish to pub.dev
on:
release:
types:
- published
workflow_dispatch:
permissions:
contents: read
id-token: write
jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.event_name == 'workflow_dispatch' || startsWith(github.event.release.tag_name, 'v')
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
- name: Verify release tag matches pubspec version
if: github.event_name == 'release'
run: |
version=$(grep '^version:' pubspec.yaml | awk '{print $2}')
if [ "v$version" != "${{ github.event.release.tag_name }}" ]; then
echo "Tag mismatch: pubspec version is v$version but release tag is ${{ github.event.release.tag_name }}"
exit 1
fi
- name: Install dependencies
run: flutter pub get
- name: Verify OIDC is available
run: |
if [ -z "${ACTIONS_ID_TOKEN_REQUEST_URL:-}" ]; then
echo "OIDC token endpoint is not available. Check workflow permissions."
exit 1
fi
- name: Validate package
run: flutter pub publish --dry-run
- name: Publish package
run: timeout 10m flutter pub publish -f