feat: sync packages meta (#12) #10
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
on: | |
push: | |
branches: | |
- main | |
name: release-please | |
permissions: | |
contents: write | |
pull-requests: write | |
id-token: write | |
jobs: | |
release-please: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GoogleCloudPlatform/release-please-action@v4 | |
id: release | |
with: | |
token: ${{secrets.GITHUB_TOKEN}} | |
# Output which releases were created | |
- name: Output release info | |
run: | | |
echo "releases_created:" ${{ steps.release.outputs.releases_created }} | |
echo "packages/compat--release_created:" ${{ steps.release.outputs['packages/compat--release_created'] }} | |
echo "packages/object-schema--release_created:" ${{ steps.release.outputs['packages/object-schema--release_created'] }} | |
echo "packages/config-array--release_created" ${{ steps.release.outputs['packages/config-array--release_created'] }} | |
# Check to see if we need to do any releases and if so check out the repo | |
- uses: actions/checkout@v4 | |
if: ${{ steps.release.outputs.releases_created == 'true' }} | |
# Node.js release | |
- uses: actions/setup-node@v4 | |
if: ${{ steps.release.outputs.releases_created == 'true' }} | |
with: | |
node-version: lts/* | |
registry-url: "https://registry.npmjs.org" | |
- run: | | |
npm install | |
npm run build | |
if: ${{ steps.release.outputs.releases_created == 'true' }} | |
#----------------------------------------------------------------------------- | |
# NOTE: Packages are released in order of dependency. The packages with the | |
# fewest internal dependencies are released first and the packages with the | |
# most internal dependencies are released last. | |
#----------------------------------------------------------------------------- | |
#----------------------------------------------------------------------------- | |
# @eslint/compat | |
#----------------------------------------------------------------------------- | |
- name: Publish @eslint/compat package to npm | |
run: npm publish -w packages/compat | |
if: ${{ steps.release.outputs['packages/compat--release_created'] }} | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
- name: Publish @eslint/compat package to JSR | |
run: | | |
npm run build --if-present | |
npx jsr publish | |
working-directory: packages/compat | |
if: ${{ steps.release.outputs['packages/compat--release_created'] }} | |
- name: Tweet Release Announcement | |
run: npx @humanwhocodes/tweet "@eslint/compat v${{ steps.release.outputs['packages/compat--major'] }}.${{ steps.release.outputs['packages/compat--minor'] }}.${{ steps.release.outputs['packages/compat--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/compat--tag_name'] }}" | |
if: ${{ steps.release.outputs['packages/compat--release_created'] }} | |
env: | |
TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} | |
TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} | |
TWITTER_ACCESS_TOKEN_KEY: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} | |
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} | |
- name: Toot Release Announcement | |
run: npx @humanwhocodes/toot "@eslint/compat v${{ steps.release.outputs['packages/compat--major'] }}.${{ steps.release.outputs['packages/compat--minor'] }}.${{ steps.release.outputs['packages/compat--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/compat--tag_name'] }}"' | |
if: ${{ steps.release.outputs['packages/compat--release_created'] }} | |
env: | |
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }} | |
MASTODON_HOST: ${{ secrets.MASTODON_HOST }} | |
#----------------------------------------------------------------------------- | |
# @eslint/object-schema | |
#----------------------------------------------------------------------------- | |
- name: Publish @eslint/object-schema package to npm | |
run: npm publish -w packages/object-schema | |
if: ${{ steps.release.outputs['packages/object-schema--release_created'] }} | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
- name: Publish @eslint/object-schema package to JSR | |
run: npx jsr publish | |
working-directory: packages/object-schema | |
if: ${{ steps.release.outputs['packages/object-schema--release_created'] }} | |
- name: Tweet Release Announcement | |
run: npx @humanwhocodes/tweet "@eslint/object-schema v${{ steps.release.outputs['packages/object-schema--major'] }}.${{ steps.release.outputs['packages/object-schema--minor'] }}.${{ steps.release.outputs['packages/object-schema--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/object-schema--tag_name'] }}" | |
if: ${{ steps.release.outputs['packages/object-schema--release_created'] }} | |
env: | |
TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} | |
TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} | |
TWITTER_ACCESS_TOKEN_KEY: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} | |
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} | |
- name: Toot Release Announcement | |
run: npx @humanwhocodes/toot "@eslint/object-schema v${{ steps.release.outputs['packages/object-schema--major'] }}.${{ steps.release.outputs['packages/object-schema--minor'] }}.${{ steps.release.outputs['packages/object-schema--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/object-schema--tag_name'] }}"' | |
if: ${{ steps.release.outputs['packages/object-schema--release_created'] }} | |
env: | |
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }} | |
MASTODON_HOST: ${{ secrets.MASTODON_HOST }} | |
#----------------------------------------------------------------------------- | |
# @eslint/config-array | |
#----------------------------------------------------------------------------- | |
- name: Publish @eslint/config-array package to npm | |
run: npm publish -w packages/config-array | |
if: ${{ steps.release.outputs['packages/config-array--release_created'] }} | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
- name: Publish @eslint/config-array package to JSR | |
run: npx jsr publish | |
working-directory: packages/config-array | |
if: ${{ steps.release.outputs['packages/config-array--release_created'] }} | |
- name: Tweet Release Announcement | |
run: npx @humanwhocodes/tweet "@eslint/config-array v${{ steps.release.outputs['packages/config-array--major'] }}.${{ steps.release.outputs['packages/config-array--minor'] }}.${{ steps.release.outputs['packages/config-array--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/config-array--tag_name'] }}" | |
if: ${{ steps.release.outputs['packages/config-array--release_created'] }} | |
env: | |
TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} | |
TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} | |
TWITTER_ACCESS_TOKEN_KEY: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} | |
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} | |
- name: Toot Release Announcement | |
run: npx @humanwhocodes/toot "@eslint/config-array v${{ steps.release.outputs['packages/config-array--major'] }}.${{ steps.release.outputs['packages/config-array--minor'] }}.${{ steps.release.outputs['packages/config-array--patch'] }} has been released!\n\n${{ github.event.repository.html_url }}/releases/tag/v${{ steps.release.outputs['packages/config-array--tag_name'] }}"' | |
if: ${{ steps.release.outputs['packages/config-array--release_created'] }} | |
env: | |
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }} | |
MASTODON_HOST: ${{ secrets.MASTODON_HOST }} |