name: Publish to pub.dev on: push: tags: - v[0-9]+.[0-9]+.[0-9]+ # Publish using the reusable workflow from dart-lang. jobs: publish: permissions: contents: read id-token: write uses: famedly/frontend-ci-templates/.github/workflows/publish-pub.yml@main with: env_file: ".github/workflows/versions.env" create_gh_release: env: GH_TOKEN: ${{ github.token }} needs: [publish] runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Create release run: | version=$(echo ${{ github.ref_name }} | sed 's/^v//') releaseRegex="^v[0-9]+\.[0-9]+\.[0-9]+$" releaseCandidateRegex="^v[0-9]+\.[0-9]+\.[0-9]+rc[0-9]+$" notes=$(./scripts/extract_changelog.sh $version) if [ -n "$notes" ]; then if [[ ${{ github.ref_name }} =~ $releaseRegex ]]; then gh release create ${{ github.ref_name }} --notes "$notes" -t ${{ github.ref_name }} --verify-tag elif [[ ${{ github.ref_name }} =~ $releaseCandidateRegex ]]; then gh release create ${{ github.ref_name }} --notes "$notes" --prerelease -t ${{ github.ref_name }} --verify-tag fi else if [[ ${{ github.ref_name }} =~ $releaseRegex ]]; then gh release create ${{ github.ref_name }} --generate-notes -t ${{ github.ref_name }} --verify-tag elif [[ ${{ github.ref_name }} =~ $releaseCandidateRegex ]]; then gh release create ${{ github.ref_name }} --generate-notes --prerelease -t ${{ github.ref_name }} --verify-tag fi fi