blob: b911d3c2d33f923510023998c76c7ba457e6a3d9 [file] [log] [blame]
# 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
write-comments: 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@8ade135a41bc03ea155e62e844d188df1ea18608
- uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d
- 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: Get comment id
if: ${{ (hashFiles('output/comment.md') != '') && fromJSON(env.write-comments ) }}
run: |
touch -a output/commentId
COMMENT_ID=$(cat output/commentId)
echo "COMMENT_ID=$COMMENT_ID" >> $GITHUB_ENV
- name: Create comment
uses: peter-evans/create-or-update-comment@ddff993e3c91296d410ace8836568b0e4aeada34
if: ${{ (hashFiles('output/comment.md') != '') && fromJSON(env.write-comments ) && (env.COMMENT_ID == '') }}
with:
issue-number: ${{ github.event.number }}
body-path: 'output/comment.md'
edit-mode: replace
- name: Update comment
uses: peter-evans/create-or-update-comment@ddff993e3c91296d410ace8836568b0e4aeada34
if: ${{ (hashFiles('output/comment.md') != '') && fromJSON(env.write-comments ) && (env.COMMENT_ID != '') }}
with:
comment-id: ${{ env.COMMENT_ID }}
body-path: 'output/comment.md'
edit-mode: replace
- name: Save PR number
if: ${{ !fromJSON(env.write-comments ) }}
run: |
mkdir -p output/ && echo ${{ github.event.number }} > output/issueNumber
- name: Upload folder with number and markdown
if: ${{ !fromJSON(env.write-comments ) }}
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
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] }}