Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 12 additions & 44 deletions .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 }}
138 changes: 138 additions & 0 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
@@ -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