From 45960fdfb3d19ec0f085859ecf2614c183c20a56 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 29 Nov 2025 06:55:04 +0100 Subject: [PATCH] fix --- .github/workflows/release-automated.yml | 56 +++------- .github/workflows/release-publish.yml | 138 ++++++++++++++++++++++++ 2 files changed, 150 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/release-publish.yml diff --git a/.github/workflows/release-automated.yml b/.github/workflows/release-automated.yml index df14aef6..032d034b 100644 --- a/.github/workflows/release-automated.yml +++ b/.github/workflows/release-automated.yml @@ -20,6 +20,9 @@ jobs: if: github.event_name == 'push' && github.ref_type == 'branch' runs-on: ubuntu-latest timeout-minutes: 10 + outputs: + dart_tag: ${{ steps.dart-release.outputs.new_release_git_tag }} + flutter_tag: ${{ steps.flutter-release.outputs.new_release_git_tag }} permissions: contents: write issues: write @@ -38,59 +41,24 @@ jobs: - name: Install dependencies run: npm ci - name: Run semantic-release for dart package + id: dart-release run: npx semantic-release env: GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} PKG_NAME: dart - name: Run semantic-release for flutter package + id: flutter-release run: npx semantic-release env: GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} PKG_NAME: flutter - pub-publish: - if: github.event_name == 'push' && github.ref_type == 'tag' - runs-on: ubuntu-latest - timeout-minutes: 10 + publish: + needs: release + if: needs.release.outputs.dart_tag != '' || needs.release.outputs.flutter_tag != '' + uses: ./.github/workflows/release-publish.yml permissions: id-token: write - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ github.ref_name }} - - name: Setup dart - uses: dart-lang/setup-dart@v1 - with: - sdk: '3.10.0' - - name: Setup flutter - if: env.package == 'flutter' - uses: subosito/flutter-action@v2 - with: - cache: true - channel: stable - flutter-version: 3.38.1 - - name: Install dart dependencies - run: dart pub get --directory 'packages/dart' - - name: Install flutter dependencies - if: env.package == 'flutter' - run: dart pub get --directory 'packages/flutter' - - name: Analyze dart - if: env.package == 'dart' - run: dart analyze --fatal-infos 'packages/${{ env.package }}' - - name: Analyze flutter - if: env.package == 'flutter' - run: flutter analyze --fatal-infos 'packages/${{ env.package }}' - - name: Lint - run: dart format --output=none --set-exit-if-changed 'packages/${{ env.package }}' - - name: Publish package (dry-run) - working-directory: 'packages/${{ env.package }}' - run: dart pub publish --dry-run - - name: Publish package - working-directory: 'packages/${{ env.package }}' - run: dart pub publish --force - docs-publish: - if: github.event_name == 'push' && github.ref_type == 'tag' - needs: pub-publish - uses: parse-community/Parse-SDK-Flutter/.github/workflows/release-manual-docs.yml@master + contents: write with: - tag: ${{ github.ref_name }} + dart_tag: ${{ needs.release.outputs.dart_tag }} + flutter_tag: ${{ needs.release.outputs.flutter_tag }} diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml new file mode 100644 index 00000000..0349dc73 --- /dev/null +++ b/.github/workflows/release-publish.yml @@ -0,0 +1,138 @@ +name: release-publish +on: + workflow_dispatch: + inputs: + tag: + default: '' + description: 'Version tag (dart-#.#.# or flutter-#.#.#):' + workflow_call: + inputs: + dart_tag: + required: false + type: string + description: 'Dart package version tag (dart-#.#.#)' + flutter_tag: + required: false + type: string + description: 'Flutter package version tag (flutter-#.#.#)' +env: + # Resolve tags for both workflow_dispatch and workflow_call + dart_tag_resolved: ${{ inputs.dart_tag || (startsWith(inputs.tag, 'dart-') && inputs.tag || '') }} + flutter_tag_resolved: ${{ inputs.flutter_tag || (startsWith(inputs.tag, 'flutter-') && inputs.tag || '') }} +jobs: + pub-publish-dart: + if: inputs.dart_tag != '' || startsWith(inputs.tag, 'dart-') + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + id-token: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ env.dart_tag_resolved }} + - name: Setup dart + uses: dart-lang/setup-dart@v1 + with: + sdk: '3.10.0' + - name: Install dart dependencies + run: dart pub get --directory 'packages/dart' + - name: Analyze dart + run: dart analyze --fatal-infos 'packages/dart' + - name: Lint + run: dart format --output=none --set-exit-if-changed 'packages/dart' + - name: Publish package (dry-run) + working-directory: 'packages/dart' + run: dart pub publish --dry-run + - name: Publish package + working-directory: 'packages/dart' + run: dart pub publish --force + + pub-publish-flutter: + if: inputs.flutter_tag != '' || startsWith(inputs.tag, 'flutter-') + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + id-token: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ env.flutter_tag_resolved }} + - name: Setup dart + uses: dart-lang/setup-dart@v1 + with: + sdk: '3.10.0' + - name: Setup flutter + uses: subosito/flutter-action@v2 + with: + cache: true + channel: stable + flutter-version: 3.38.1 + - name: Install dart dependencies + run: dart pub get --directory 'packages/dart' + - name: Install flutter dependencies + run: dart pub get --directory 'packages/flutter' + - name: Analyze flutter + run: flutter analyze --fatal-infos 'packages/flutter' + - name: Lint + run: dart format --output=none --set-exit-if-changed 'packages/flutter' + - name: Publish package (dry-run) + working-directory: 'packages/flutter' + run: dart pub publish --dry-run + - name: Publish package + working-directory: 'packages/flutter' + run: dart pub publish --force + + docs-publish-dart: + if: inputs.dart_tag != '' || startsWith(inputs.tag, 'dart-') + needs: pub-publish-dart + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ env.dart_tag_resolved }} + - name: Setup dart + uses: dart-lang/setup-dart@v1 + - name: Install dart dependencies + run: dart pub get --directory 'packages/dart' + - name: Generate Docs + run: dart doc ./packages/dart/ -o ./.api_docs/dart/ + - name: Deploy + uses: peaceiris/actions-gh-pages@v3.7.3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./.api_docs/dart/ + destination_dir: dart + + docs-publish-flutter: + if: inputs.flutter_tag != '' || startsWith(inputs.tag, 'flutter-') + needs: pub-publish-flutter + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ env.flutter_tag_resolved }} + - name: Setup dart + uses: dart-lang/setup-dart@v1 + - name: Setup flutter + uses: subosito/flutter-action@v2 + with: + channel: 'stable' + cache: true + - name: Install dart dependencies + run: dart pub get --directory 'packages/dart' + - name: Install flutter dependencies + run: dart pub get --directory 'packages/flutter' + - name: Generate Docs + run: dart doc ./packages/flutter/ -o ./.api_docs/flutter/ + - name: Deploy + uses: peaceiris/actions-gh-pages@v3.7.3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./.api_docs/flutter/ + destination_dir: flutter