name: Publish to pub.dev on: push: tags: - 'drift-[0-9]+.[0-9]+.[0-9]+*' - 'drift_dev-[0-9]+.[0-9]+.[0-9]+*' - 'sqlparser-[0-9]+.[0-9]+.[0-9]+*' - 'drift_postgres-[0-9]+.[0-9]+.[0-9]+*' jobs: setup: uses: ./.github/workflows/setup.yml publish_drift: if: "${{ startsWith(github.ref_name, 'drift-') }}" needs: [setup] runs-on: ubuntu-latest environment: pub.dev permissions: id-token: write # Required for authentication using OIDC steps: - uses: actions/checkout@v4 # We need to build the DevTools extension, which is written in Flutter - uses: subosito/flutter-action@v2 with: channel: 'stable' - uses: actions/cache@v3 with: path: "${{ env.PUB_CACHE }}" key: dart-dependencies-${{ needs.setup.outputs.dart_version }}-${{ hashFiles('**/pubspec.yaml') }} restore-keys: | dart-dependencies-${{ needs.setup.outputs.dart_version }}- dart-dependencies- - name: Setup dependencies run: | dart pub global activate melos dart pub get melos bootstrap shell: bash - name: Build DevTools extension working-directory: extras/drift_devtools_extension run: ./build.sh - run: dart pub lish --dry-run working-directory: drift - run: dart pub lish -f working-directory: drift publish_drift_dev: if: "${{ startsWith(github.ref_name, 'drift_dev-') }}" needs: [setup] runs-on: ubuntu-latest environment: pub.dev permissions: id-token: write # Required for authentication using OIDC defaults: run: working-directory: drift_dev steps: - uses: actions/checkout@v4 - uses: ./.github/actions/prepare with: dart_version: ${{ needs.setup.outputs.dart_version }} - run: melos bootstrap --scope drift_dev working-directory: . - run: dart pub lish --dry-run - run: dart pub lish -f # Published versions of sqlparser are tagged with `sqlparser-` publish_sqlparser: if: "${{ startsWith(github.ref_name, 'sqlparser-') }}" needs: [setup] runs-on: ubuntu-latest environment: pub.dev permissions: id-token: write # Required for authentication using OIDC defaults: run: working-directory: sqlparser steps: - uses: actions/checkout@v4 - uses: ./.github/actions/prepare with: dart_version: ${{ needs.setup.outputs.dart_version }} - run: dart pub get - run: dart pub lish --dry-run - run: dart pub lish -f publish_drift_postgres: if: "${{ startsWith(github.ref_name, 'drift_postgres-') }}" needs: [setup] runs-on: ubuntu-latest environment: pub.dev permissions: id-token: write # Required for authentication using OIDC defaults: run: working-directory: extras/drift_postgres steps: - uses: actions/checkout@v4 - uses: ./.github/actions/prepare with: dart_version: ${{ needs.setup.outputs.dart_version }} - run: dart pub get - run: dart pub lish --dry-run - run: dart pub lish -f