Create a workflow .yml
file in your repositories .github/workflows
directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file.
level
- notice, warn, error OPTIONAL (defaults to notice)message
- message for annotation REQUIREDtitle
- title for annotation OPTIONALfile
- file for annotation OPTIONALstart-line
- start-line for annotation OPTIONALend-line
- end-line for annotation OPTIONALstart-column
- title for annotation OPTIONALend-column
- title for annotation OPTIONAL
- name: Notice
uses: hipcamp/annotate@v1
with:
level: notice
message: 'This is a test of Notice'
title: 'Title for Notice'
- name: Warn
uses: hipcamp/annotate@v1
with:
level: warn
message: 'This is a test of warning'
title: 'Title for Warning'
- name: Error
uses: hipcamp/annotate@v1
with:
level: error
message: 'This is a test of Error'
title: 'Title for Error'
First, you'll need to have a reasonably modern version of
node
handy. This won't work with versions older than 9, for instance.
Install the dependencies
$ npm install
Build the typescript and package it for distribution
$ npm run build && npm run package
Run the tests ✔️
$ npm test
PASS ./index.test.js
✓ throws invalid number (3ms)
✓ wait 500 ms (504ms)
✓ test runs (95ms)
...
The action.yml contains defines the inputs and output for your action.
Update the action.yml with your name, description, inputs and outputs for your action.
See the documentation
Most toolkit and CI/CD operations involve async operations so the action is run in an async function.
import * as core from '@actions/core';
...
async function run() {
try {
...
}
catch (error) {
core.setFailed(error.message);
}
}
run()
See the toolkit documentation for the various packages.
Actions are run from GitHub repos so we will checkin the packed dist folder.
$ npm run all
$ git add -A
$ git commit -m "your commit message"
$ git tag v[version from package.json]
$ git push origin v[version from package.json]
Your action is now published! 🚀
See the versioning documentation