| # A CI configuration to auto-publish pub packages from dart-lang/ecosystem. |
| |
| # We don't use the regular publish.yaml script here in order to dogfood the |
| # publishing code at head. |
| |
| name: Publish |
| |
| on: |
| pull_request: |
| branches: [ main ] |
| types: [opened, synchronize, reopened, labeled, unlabeled] |
| push: |
| tags: [ '[A-z]+-v[0-9]+.[0-9]+.[0-9]+' ] |
| |
| env: |
| use-flutter: false |
| |
| jobs: |
| publish: |
| if: github.repository_owner == 'dart-lang' |
| |
| # These permissions are required for authentication using OIDC and to enable |
| # us to create comments on PRs. |
| permissions: |
| id-token: write |
| pull-requests: write |
| |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 |
| - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f |
| |
| - name: Pub get |
| working-directory: pkgs/firehose |
| run: dart pub get |
| |
| - name: Validate packages |
| if: ${{ github.event_name == 'pull_request' }} |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| ISSUE_NUMBER: ${{ github.event.number }} |
| PR_LABELS: "${{ join(github.event.pull_request.labels.*.name) }}" |
| run: dart pkgs/firehose/bin/firehose.dart --validate ${{ fromJSON('{"true":"--use-flutter","false":"--no-use-flutter"}')[env.use-flutter] }} |
| |
| - name: Save PR number |
| run: | |
| mkdir -p output/ && echo ${{ github.event.number }} > output/issueNumber |
| |
| - name: Upload folder with number and markdown |
| uses: actions/upload-artifact@65d862660abb392b8c4a3d1195a2108db131dd05 |
| with: |
| name: output |
| path: output/ |
| |
| - name: Publish tagged package |
| if: ${{ github.event_name == 'push' }} |
| run: dart pkgs/firehose/bin/firehose.dart --publish ${{ fromJSON('{"true":"--use-flutter","false":"--no-use-flutter"}')[env.use-flutter] }} |