This action do git tag ${version}
to the repository, but it is idempotent.
- Push the tag if the tag does not exist on the repository
You create workflow file like .github/workflows/publish.yml
.
name: publish
env:
CI: true
on:
push:
branches:
- master
tags:
- "!*"
jobs:
release:
name: Setup
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: setup Node
uses: actions/setup-node@v2
- name: package-version-to-git-tag
uses: pkgdeps/git-tag-action@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_repo: ${{ github.repository }}
git_commit_sha: ${{ github.sha }}
version: "1.0.0"
git_tag_prefix: "v"
- [Manual] Update Version:
npm --no-git-tag-version vession {patch,minor,major}
- [Manual] Push:
git push --tags
or Merge the Pull Request - [CI] Publish to npm and Push a tag to GitHub
This Release flow is defined in .github/workflows/publish.yml
name: publish
env:
CI: true
on:
push:
branches:
- master
tags:
- "!*"
jobs:
release:
name: Setup
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: setup Node
uses: actions/setup-node@v2
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
- name: install
run: npm install
- name: test
run: npm test
# Publish to npm if this version is not published
- name: publish
run: |
npx can-npm-publish --verbose && npm publish || echo "Does not publish"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Push tag to GitHub if package.json version's tag is not tagged
- name: package-version
run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV
- name: package-version-to-git-tag
uses: pkgdeps/git-tag-action@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_repo: ${{ github.repository }}
version: ${{ env.PACKAGE_VERSION }}
git_commit_sha: ${{ github.sha }}
git_tag_prefix: "v"
For more details, see following example
inputs:
version:
description: 'Git Tag version'
required: true
github_token:
description: 'use secrets.GITHUB_TOKEN'
required: true
git_commit_sha:
description: 'Git commit SHA'
required: false
git_tag_prefix:
description: "prefix for git tag. Example) 'v'"
required: false
default: ""
github_repo:
description: 'GitHub repository path. Example) azu/test'
required: true
- https://github.com/pkgdeps/git-tag-action
- Create new tag like "v2.0.0"
- CI publish "v2.0.0", "v2.0", and "v2"
- 2.0.0: tag is annotated tag instead of lightweight tag
- Rename
action-package-version-to-git-tag
togit-tag-action
- Rename
Occur following error:
npx: installed 57 in 6.945s
npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"
npm ERR! A complete log of this run can be found in:
npm ERR! /github/home/.npm/_logs/2019-12-26T08_02_20_108Z-debug.log
Please check NODE_AUTH_TOKEN
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}