ci: fix incorrect script paths #272
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 uploading files to the release assets of GitHub. | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: π¦ Checkout repository | |
uses: actions/checkout@v4 | |
- name: π Upload LICENSE file to release assets | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: LICENSE | |
- 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: π·οΈ Extract release tag | |
id: release_tag | |
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT | |
# TODO: Validate the tag, the version must match the one in pubspec.yaml, publishing the package will throw an error | |
# TODO: Might automate some changes of the CHANGELOG.md (outdated TODO) | |
- name: π Update package version in pubspec.yaml | |
run: dart ./scripts/update_pubspec_version.dart ./pubspec.yaml ${{ steps.extract_version.outputs.VERSION }} | |
# - name: π Update CHANGELOG.md to reflect the change | |
# uses: thomaseizinger/keep-a-changelog-new-release@v2 | |
# with: | |
# tag: ${{ steps.release_tag.outputs.tag }} | |
# changelogPath: ./CHANGELOG.md | |
- name: π Update CHANGELOG.md to reflect the change | |
run: dart ./scripts/update_changelog_version.dart ./CHANGELOG.md ${{ steps.extract_version.outputs.VERSION }} | |
- 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: πΎ Commit updated version and CHANGELOG | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: "chore(release): prepare to publish ${{ steps.extract_version.outputs.VERSION }}" | |
- name: π Check if package is ready for publishing | |
run: flutter pub publish --dry-run | |
- name: π€ Publish flutter_quill | |
run: flutter pub publish --force |