Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add snapshot releases for PRs #681

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/changeset-pr-snapshot-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Release PR Snapshot

on: pull_request

jobs:
snapshot_release:
if: github.repository == 'atlassian/changesets'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know if github.repository actually means the repo that the pull request is from? I really wouldn't be surprised if it meant the repo that the PR is to.

Copy link
Member Author

@Andarist Andarist Nov 30, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, for the pull_request trigger this should be:

Suggested change
if: github.repository == 'atlassian/changesets'
if: github.event.pull_request.head.repo.full_name == 'changesets/changesets'

This will prevent this workflow PR from potentially running when a pull request targets a fork of the Changesets repo. It's a minor thing but I guess still worth doing if this has already been added, right?


timeout-minutes: 20

name: Release PR Snapshot
runs-on: ubuntu-latest

steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Setup Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 14.x

- name: Install Dependencies
run: yarn --frozen-lockfile

- name: Bump to Snapshot Versions
run: |
yarn changeset version --snapshot pr${{ github.event.pull_request.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Release a PR Snapshot
run: |
yarn changeset publish --tag pr${{ github.event.pull_request.number }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
20 changes: 11 additions & 9 deletions .github/workflows/changeset-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,27 @@ on:

jobs:
release:
if: github.repository == 'atlassian/changesets'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if: github.repository == 'atlassian/changesets'
if: github.repository == 'changesets/changesets'


timeout-minutes: 20

name: Release
runs-on: ubuntu-latest

steps:
- name: Checkout Repo
uses: actions/checkout@master
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
uses: actions/checkout@v2

- name: Setup Node.js 12.x
uses: actions/setup-node@master
- name: Setup Node.js 14.x
uses: actions/setup-node@v2
with:
node-version: 12.x
node-version: 14.x

- name: Install Dependencies
run: yarn
run: yarn --frozen-lockfile

- name: Create Release Pull Request or Publish to npm
uses: changesets/action@master
uses: changesets/action@v1
with:
# this expects you to have a script called release which does a build for your packages and calls changeset publish
publish: yarn release
Expand Down