This action is written in Typescript and makes use of the Github @actions packages
The underlining design can be found in DESIGN.md.
This tool relies on the availability of Node.js and Docker.
Please verify that you have Node.js
and the related package manager npm
, and docker
available on your
system. Make sure that the version of Node.js
is at least 12
.
$ node --version
v14.17.0
$ npm --version
6.14.13
$ docker --version
Docker version 20.10.6, build 370c289
Node.js
and npm
can be downloaded in one package from nodejs.org. And here are
instructions for upgrading Node.js
.
Install the dependencies
$ npm install
Build the typescript and package it for distribution
$ npm run build && npm run package
The tests are stored in the directory __tests__
and are written using
jestjs.
Run the tests ✔️
$ npm test
PASS ./index.test.js
✓ throws invalid number (3ms)
✓ wait 500 ms (504ms)
✓ test runs (95ms)
...
To get information about the test coverage, run the tests with
coverage npm test -- --coverage
and
examine the file coverage/lcov-report/index.html
The code in the src
directory can be linted with:
npm run lint
Some of the linting error can be fixed with formatting:
npm run format
The tool will analyze the license dependencies in current Github
repository and store reports of the analyses in the .tortellini/out/
directory.
export INPUT_REPOSITORIES=
export INPUT_CURATIONS=''
export INPUT_CLASSIFICATIONS=https://github.com/NLeSC/tortellini-on-rsd/raw/main/config/license-classifications.yml
export INPUT_RULES=https://github.com/NLeSC/tortellini-on-rsd/raw/main/config/rules.kts
npm install
npm run build
npm run package
node dist/index.js
You can also analyze other repositories on Github by storing their addresses in a file and running node on the file, e.g.:
echo 'https://github.com/tortellini-tools/action' > urls.txt
echo 'https://github.com/fair-software/howfairis' >> urls.txt
The analysis expects a few environment variables. Here are their names and suggested values:
export INPUT_REPOSITORIES=urls.txt
export INPUT_CURATIONS=''
export INPUT_CLASSIFICATIONS=https://github.com/NLeSC/tortellini-on-rsd/raw/main/config/license-classifications.yml
export INPUT_RULES=https://github.com/NLeSC/tortellini-on-rsd/raw/main/config/rules.kts
sudo rm -r .tortellini
mkdir .tortellini
node dist/index.js
The analyses will be stored in the directories
.tortellini/out/<owner>/<repository>/
.
-
Update the citation metadata in
CITATION.cff
. Afterwards, follow the instructions from thecffconvert
workfow to sync the information in.zenodo.json
with that inCITATION.cff
-
Actions are run from GitHub repos so we need to generate the Javascript files in the
dist
folder and push the results:$ cd $(mktemp --directory --tmpdir tortellini-prep-release.XXXXXX) $ git clone https://github.com/tortellini-tools/action . $ npm install $ npm run all $ git add dist $ git commit --message "prod dependencies" $ git push origin main
-
Next, check if the workflows of the lastest commit on the main branch are green on the action page.
-
Create a release on the Github page via Create a new release.
-
On the new release page, for
Tag version
usev
and the next version number, for examplev3
. See the versioning documentation for more information. -
Make sure that usage workflows are using the new version tag and the examples in README.md are updated.
Your action is now published! 🚀
Check if the new version has been published on the Github Marketplace.
You can now validate the action by going to
this workflow and this workflow
and then clicking on the button Run workflow
.