A GitHub Action to setup BATS testing framework.
A sample workflow to run tests using BATS (.github/workflows/ci.yml
):
name: "CI"
on: [push, pull_request]
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- name: Setup BATS
uses: mig4/setup-bats@v1
with:
bats-version: 1.2.1
- name: Check out code
uses: actions/checkout@v1
- name: Test
run: bats -r .
Options available as keys in with
block
bats-version
(string
): version of BATS to setup, defaults to 1.2.1 if not set
So far this action has only been tested on Linux environments.
See known issues, if you found one that's not on the list or have a suggestion for improvement, open a new issue. If you can, fork and send a PR, it will be appreciated 💖.
Install the dependencies
$ npm install
Build the typescript, apply formatting, lint and package the code for distribution and run unit tests:
$ npm run all
Run the tests separately ✔️
$ npm test
...
PASS __tests__/installer.test.ts
installer tests
✓ Acquires version of BATS if no matching version is installed (1051ms)
✓ Throws if no matching version of BATS can be found (674ms)
The action.yml
file defines the inputs and output, description, etc. of the
action.
See the documentation:
Actions are run from GitHub repos so the branch which will be used at runtime
needs to have the dist/
folder checked-in. It's recommended for users to only
refer to released versions instead of consuming master directly.
The distribution is created with ncc which can be invoked via:
$ npm run package
$ git add dist
$ git commit -a -m "prod package"
Now to release a new minor/patch versions (replace .x.y
as appropriate):
# update "version" property in `package.json`
$ npm install
$ npm run all
$ git add -A
$ git commit -v -m "Release v1.x.y"
$ git push
$ git tag -s v1.x.y
$ git tag -fs v1 -m "Update v1 tag"
$ git push --tags --force
For the tag to be published to marketplace you need to create a release from
it which you can do by going into Releases in GitHub UI, then Tags and
clicking the menu next to the newly created tag and select Create release.
Alternatively use the URL (replace x.y
as appropriate):
https://github.com/mig4/setup-bats/releases/new?tag=v1.x.y
The action is now published! 🚀
See the versioning documentation
- typescript-action template
- existing setup actions