A tool to validate your CITATIONS.cff file using cffconvert.
This tool has been tested against the following:
- GitHub Actions
- Travis CI
- CircleCI
- BitBucket pipelines
- Local command line
Because it is a plain Bash script, it should work on most CI platforms where you can run arbitrary commands.
on: [push, pull_request]
jobs:
build:
name: Validate Citations File
runs-on: ubuntu-latest
steps:
- name: Checkout the Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Run Validate Citations File
run: bash <(curl -s https://raw.githubusercontent.com/lupaxa-cicd-toolbox/validate-citations-file/master/src/pipeline.sh)./src/pipeline.shOr without cloning:
bash <(curl -s https://raw.githubusercontent.com/lupaxa-cicd-toolbox/validate-citations-file/master/src/pipeline.sh)The following environment variables customise the script:
| Variable | Default | Purpose |
|---|---|---|
INCLUDE_FILES |
(empty) |
Comma-separated path regexes to force-include |
EXCLUDE_FILES |
(empty) |
Comma-separated path regexes to skip |
NO_COLOR |
false |
Disable colour output |
REPORT_ONLY |
false |
Report results but always exit 0 |
SHOW_ERRORS |
true |
Show detailed errors for failed files |
SHOW_FILTERED |
false |
Show files skipped by exclude rules |
SHOW_UNMATCHED |
false |
Show files that matched neither pattern |
SCAN_ROOT |
script default | Override scan directory without editing the script |
Note
If you set INCLUDE_FILES, only matching paths are scanned (everything else is skipped, including paths that would match EXCLUDE_FILES).
You can combine any of the settings above:
on: [push, pull_request]
jobs:
build:
name: Validate Citations File
runs-on: ubuntu-latest
steps:
- name: Checkout the Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Run Validate Citations File
env:
REPORT_ONLY: true
SHOW_ERRORS: true
run: bash <(curl -s https://raw.githubusercontent.com/lupaxa-cicd-toolbox/validate-citations-file/master/src/pipeline.sh)--------------------------------------------------------------------- Stage 1: Parameters --
No parameters given
---------------------------------------------------------- Stage 2: Install Prerequisites --
[ OK ] python -m pip install --quiet --upgrade pip
[ OK ] cffconvert --validate is already installed
-------------------------------------------------------- Stage 3: Run cffconvert (v2.0.0) --
[ ✅ ] CITATION.cff
------------------------------------------------------------------------- Stage 4: Report --
Total: 1, OK: 1, Failed: 0, Skipped: 0
----------------------------------------------------------------------- Stage 5: Complete --
Target files are identified using the following code:
[[ ${filename} =~ CITATIONS.cff$ ]]Note
There is not magic type for puppet files so file -b is of not use for identifying the files.