Skip to content

Change release to trigger on version change #16

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

Merged
merged 5 commits into from
Apr 25, 2023
Merged
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
49 changes: 0 additions & 49 deletions .github/workflows/create-release.yml

This file was deleted.

47 changes: 0 additions & 47 deletions .github/workflows/npm-bump-version.yml

This file was deleted.

78 changes: 78 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: release
on:
push:
branches:
- main

jobs:
npm-publish:
name: Publish to NPM & GitHub Package Registry
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: main
# limit releases to version changes - https://github.com/EndBug/version-check
- name: Check version changes
uses: EndBug/version-check@v1
id: version_check
with:
file-url: https://unpkg.com/@grafana/async-query-data@latest/package.json
static-checking: localIsNew

- name: Version update detected
if: steps.version_check.outputs.changed == 'true'
run: 'echo "Version change found! New version: ${{ steps.version_check.outputs.version }} (${{ steps.version_check.outputs.type }})"'

- name: Setup .npmrc file for NPM registry
if: steps.version_check.outputs.changed == 'true'
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
if: steps.version_check.outputs.changed == 'true'
run: yarn

- name: Build library
if: steps.version_check.outputs.changed == 'true'
run: yarn build

- name: Publish package to NPM
if: steps.version_check.outputs.changed == 'true'
run: npm publish --access public --scope grafana
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Setup .npmrc file for GitHub Packages
if: steps.version_check.outputs.changed == 'true'
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://npm.pkg.github.com'
scope: '@grafana'

- name: Publish package to Github Packages
if: steps.version_check.outputs.changed == 'true'
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Collaborator

Choose a reason for hiding this comment

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

i don't actually see a GITHUB_TOKEN in this repo's settings. do we need to add that

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The GITHUB_TOKEN is a temporary secret that is created at runtime and has certain limited permissions, so we don't need to explicitly add it. I think this should be ok without giving it any specific permissions for this action🤞🏻

create-github-release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: npm-publish
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Create Release Notes
uses: actions/[email protected]
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
await github.request(`POST /repos/${{ github.repository }}/releases`, {
tag_name: "${{ github.ref }}",
generate_release_notes: true
});
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ Want to install this repo locally?
- if you get a yarn version >2:
- in consumer package (ex grafana) `yarn link path-to-sdk` it should add a portal resolution to your package.json

## Creating a Release
## Releasing

Creating a new release requires running the [NPM bump version action](https://github.com/grafana/grafana-async-query-data-js/actions/workflows/npm-bump-version.yml). Click `Run workflow` and specify the type of release (patch, minor, or major). The workflow will update package.json, commit and push which will trigger the [Create Release action](https://github.com/grafana/grafana-async-query-data-js/actions/workflows/create-release.yml) which publishes to npm and creates a github release with release notes.
To release a new version of the package, commit the updated "version" field into main, which will trigger the [Release action](https://github.com/grafana/grafana-async-query-data-js/actions/workflows/release.yml) which publishes to npm and creates a github release with release notes.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@grafana/async-query-data",
"version": "0.1.5",
"version": "0.1.6",
"description": "Async query support for Grafana",
"main": "dist/index.js",
"scripts": {
Expand Down