Skip to content

Create tag

Create tag #10

Workflow file for this run

---
name: Create tag
on:
workflow_dispatch:
permissions:
contents: write
jobs:
tag:
name: Create Tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
VERSION=`node --eval 'console.log(require("./package.json").version)'`
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
id: version
name: Get version number
- uses: actions/github-script@v6
name: Create tag
with:
script: |
console.log("Owner is: " + context.repo.owner);
console.log("Repo is: " + context.repo.repo);
const main = await github.rest.git.getRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'heads/main'
});
console.log("Got main branch: ");
console.log(JSON.stringify(main));
const tag = await github.rest.git.getRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'tags/${{ steps.version.outputs.VERSION }}'
});
console.log("Got tag: ");
console.log(JSON.stringify(tag));
if (tag == null || tag.status == 404)
return;
const createdTag = await github.rest.git.createTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: '${{ steps.version.outputs.VERSION }}',
message: 'Bump version to ${{ steps.version.outputs.VERSION }}',
object: context.sha,
type: 'commit'
});
if (createdTag.status !== 201) {
console.error('Could not create tag ${{ steps.version.outputs.VERSION }}.');
}
const createdRef = await github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: 'refs/tags/${{ steps.version.outputs.VERSION }}',
sha: createdTag.data.sha
});
if (createdRef.status === 201) {
console.log('Tag ${{ steps.version.outputs.VERSION }} was created successfully');
} else {
console.error('Could not create ref ${{ steps.version.outputs.VERSION }}.');
}