Skip to content

GitHub Action to setup BATS testing framework

License

Notifications You must be signed in to change notification settings

panubo/setup-bats-action

This branch is 5 commits ahead of mig4/setup-bats:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9e100a8 Β· Apr 13, 2023
Apr 13, 2023
Nov 1, 2020
Apr 13, 2023
Sep 1, 2021
Nov 1, 2020
Sep 1, 2021
Nov 1, 2020
Nov 1, 2020
Nov 1, 2020
Nov 1, 2020
Apr 13, 2023
Apr 13, 2023
Apr 13, 2023
Oct 26, 2019
Apr 13, 2023
Apr 13, 2023
Nov 1, 2020

Repository files navigation

tag-badge CI

Setup BATS πŸ¦‡

A :octocat: GitHub Action to setup BATS testing framework.

Usage πŸš€

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: panubo/setup-bats-action@v2
        with:
          bats-version: 1.7.0

      - name: Check out code
        uses: actions/checkout@v1

      - name: Test
        run: bats -r .

Options 🎨

Options available as keys in with block

  • bats-version (string): version of BATS to setup, defaults to 1.7.0 if not set

Platforms πŸ–₯

So far this action has only been tested on Linux environments.

Contributing 🀝

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 πŸ’–.

Hacking 🧰

Building

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)

Code

The action.yml file defines the inputs and output, description, etc. of the action.

See the documentation:

Publishing to a distribution branch

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/panubo/setup-bats-action/releases/new?tag=v1.x.y

The action is now published! πŸš€

See the versioning documentation

Acknowledgements πŸ‘

License πŸ“

license-badge

About

GitHub Action to setup BATS testing framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 90.7%
  • JavaScript 8.0%
  • Shell 1.3%