chore(release): prepare to publish 11.0.0-dev.10 #282
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: π Publish to pub.dev | |
# Note: This workflow only publishes flutter_quill package, the flutter_quill_extensions | |
# need to be manually published. | |
on: | |
push: | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+*' | |
jobs: | |
publish: | |
name: Publish the flutter_quill package | |
permissions: | |
id-token: write # Required for authentication using OIDC to publish to pub.dev | |
contents: write # Required for creating a GitHub release and uploading the LICENSE file | |
runs-on: ubuntu-latest | |
steps: | |
- name: π¦ Checkout repository | |
uses: actions/checkout@v4 | |
- name: π οΈ Set up Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: 'stable' | |
cache: true | |
- name: π Verify Flutter installation | |
run: flutter --version | |
- name: π₯ Install Flutter dependencies | |
run: flutter pub get | |
# This is needed in order for the authentication to success | |
# dart pub token add https://pub.dev --env-var PUB_TOKEN | |
# Requests to "https://pub.dev" will now be authenticated using the secret token stored in the environment variable "PUB_TOKEN". | |
- name: ποΈ Set up Dart environment | |
uses: dart-lang/setup-dart@v1 | |
## dart-lang/setup-dart/.github/workflows/publish.yml@v1 | |
# - name: Update the authorization requests to "https://pub.dev" to use the environment variable "PUB_TOKEN". | |
# run: dart pub token add https://pub.dev --env-var PUB_TOKEN | |
# Extract version from the tag (handles the 'v' prefix) | |
- name: π·οΈ Extract version from tag as pubspec.yaml version | |
id: extract_version | |
run: | | |
version=$(echo ${GITHUB_REF} | sed 's/^refs\/tags\/v\(.*\)$/\1/') | |
echo "VERSION=${version}" >> $GITHUB_OUTPUT | |
- name: π Validate extracted version format (should be pubspec.yaml valid version) | |
run: | | |
version=${{ steps.extract_version.outputs.VERSION }} | |
if [[ ! $version =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$ ]]; then | |
echo "β Invalid version format: $version. The version must be a valid pubspec.yaml version" | |
exit 1 | |
fi | |
# - name: π Update package version in pubspec.yaml | |
# run: dart ./scripts/update_pubspec_version.dart ${{ steps.extract_version.outputs.VERSION }} ./pubspec.yaml | |
# - name: π Update CHANGELOG.md to reflect the change | |
# run: dart ./scripts/update_changelog_version.dart ${{ steps.extract_version.outputs.VERSION }} ./CHANGELOG.md | |
# - name: π Print updated pubspec.yaml | |
# run: | | |
# echo "===== π pubspec.yaml =====" | |
# cat pubspec.yaml | tee /dev/stderr | |
# echo "===========================" | |
# - name: π Print updated CHANGELOG.md | |
# run: | | |
# echo "===== π CHANGELOG.md =====" | |
# cat CHANGELOG.md | tee /dev/stderr | |
# echo "===========================" | |
# - name: π Verify if the package version matches the tag version | |
# run: dart ./scripts/pubspec_version_check.dart ${{ steps.extract_version.outputs.VERSION }} ./pubspec.yaml | |
# - name: πΎ Commit updated version and CHANGELOG | |
# id: auto-commit-action | |
# uses: stefanzweifel/git-auto-commit-action@v5 | |
# with: | |
# commit_message: "chore(release): prepare to publish ${{ steps.extract_version.outputs.VERSION }}" | |
# - name: π Verify changes made by the script | |
# if: steps.auto-commit-action.outputs.changes_detected == 'true' | |
# run: echo "β Changes have been committed." | |
- name: βοΈ Extract Release Notes from CHANGELOG.md | |
id: extract-release-notes | |
uses: ffurrer2/extract-release-notes@v2 | |
with: | |
changelog_file: CHANGELOG.md | |
release_notes_file: RELEASE_NOTES.md | |
- name: π Create a GitHub Release | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "LICENSE" | |
bodyFile: "RELEASE_NOTES.md" | |
tag: ${{ github.ref_name }} | |
- name: π Check if package is ready for publishing | |
run: flutter pub publish --dry-run | |
- name: π€ Publish flutter_quill | |
run: flutter pub publish --force |