astro/.github/workflows/release.yml
2021-08-11 14:54:14 -07:00

52 lines
1.8 KiB
YAML

name: Changelog
on:
push:
branches:
- main
jobs:
release:
name: Changelog
runs-on: ubuntu-latest
steps:
- name: Check out branch
uses: actions/checkout@v2
with:
fetch-depth: 0 # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
- name: Set up Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x
- name: Install dependencies
run: yarn --frozen-lockfile --ignore-engines
env:
CI: true
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@master
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: yarn release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Send a Discord notification if a publish happens
if: steps.changesets.outputs.published == 'true'
id: discord-notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: 'A new release just went out! [Release notes →](<https://github.com/snowpackjs/astro/releases/>)'
- name: push main branch to latest branch
if: steps.changesets.outputs.published == 'true'
id: git-push-latest
# Note: this will fail if "latest" and "main" have different commit history,
# which is a good thing! Also, don't push if in pre-release mode.
run: '(test -f .changeset/pre.json && echo "prerelease: skip pushing to latest branch.") || git push origin main:latest'