diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4efd5d58..643088ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,10 @@ name: CI -on: [push, pull_request] +on: + push: + branches: + - '**' # we just don't want this to run redundantly on tags + pull_request: env: PUB_ENVIRONMENT: bot.github diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..01f037bf --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,89 @@ +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]+*' + +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 + 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 + + + # 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 diff --git a/drift/.pubignore b/drift/.pubignore new file mode 100644 index 00000000..f0bbfb57 --- /dev/null +++ b/drift/.pubignore @@ -0,0 +1 @@ +!extension/devtools/build diff --git a/drift/extension/devtools/.pubignore b/drift/extension/devtools/.pubignore deleted file mode 100644 index 85d9a327..00000000 --- a/drift/extension/devtools/.pubignore +++ /dev/null @@ -1 +0,0 @@ -!./build diff --git a/extras/drift_devtools_extension/pubspec.yaml b/extras/drift_devtools_extension/pubspec.yaml index cff5b716..c90f11ed 100644 --- a/extras/drift_devtools_extension/pubspec.yaml +++ b/extras/drift_devtools_extension/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: sdk: flutter devtools_extensions: ^0.0.8 - devtools_app_shared: ^0.0.5 + devtools_app_shared: '>=0.0.5 <0.0.6' # 0.0.6 requires unstable Flutter db_viewer: ^1.0.3 rxdart: ^0.27.7 flutter_riverpod: ^2.4.4 diff --git a/pubspec.yaml b/pubspec.yaml index a7f164ed..2c340279 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,5 @@ name: drift_workspace +publish_to: none environment: sdk: ^2.19.0