Collection of scripts to perform GitHub workflows.
Very often, we need a GitHub workflow script to perform Continuous Integration (CI) of our software. This repository provides a set of scripts to assist with this task.
Simply copy the desired script file from this repository to the
.github/workflows
directory of your repository. Note that some adjustments may
be necessary, such as changing the artifact name or customizing certain
parameters.
List of available GitHub workflows:
action-lint
checks workflow files for issues.
For more information, see actionlint.
markdown-lint
checks Markdown files (*.md
, *.markdown
) using
markdownlint-cli2.
For more information, see
markdownlint-cli2-action.
yaml-lint
checks YAML files (*.yml
, *.yaml
) using
yamllint. To more information, see
action-yamllint.
typos
checks the spelling in the source code. To more information, see
typos.
codecov
checks code coverage using Codecov. To more
information, see Codecov site.
copyrights
checks for copyright header lines (e.g.,
"Copyright (C) 2025 Fabrício Barros Cabral") in source files (*.asm
, *.bib
,
*.cls
, *.cpp
, *.dtx
, *.g4
, *.groovy
, *.h
, *.html
, *.ini
,
*.ins
, *.java
, *.js
, *.lua
, *.pl
, *.properties
, *.py
, *.rb
,
*.rs
, *.sh
, *.tex
, *.ts
, *.xml
, *.xsd
, *.xsl
, *.yaml
, *.yml
,
Dockerfile
, Makefile
, Rakefile
).
For more information, see
copyrights.
reuse
checks copyright and license compliance. To more information, see
reuse-action,
REUSE.
java-build
builds a Java application using Maven
on multiple environments: Linux, Windows, and Java Temurin versions 11, 17, and
21. To change any configuration, edit the java-build.yml
file.
java-release
builds a Java application using
maven in the Linux and Java Temurin 11 and deploys
it in Maven Central. To deploy into Maven Central you need:
- Create a GPG public and private keys
gpg --full-generate-key
- List your public key
gpg --list-secret-keys --keyid-format LONG
sec rsa4096/0123456789ABDEF0 2025-05-06 [SC] ABCDEF0123456789ABCDEF0123456789ABCDEF01 uid [ultimate] Your Name your.email@example.com ssb rsa4096/FEDCBA9876543210 2025-05-06 [E]
- Publish your public key
gpg --keyserver keyserver.ubuntu.com --recv-keys 0123456789ABDEF0
- Add these following secrets to you GitHub secrets in your repository
GPG_KEYNAME
: 0123456789ABDEF0
GPG_PASSPHRASE
: Your GPG password
OSSRH_USERNAME
: Your Maven Central username token
OSSRH_PASSWORD
: Your Maven Central password token
java-infer-analysis
checks Java code using Infer. To
more information, see Infer site.
java-duplication
checks Java code using
Simian for code duplication. To more
information, see Simian site.
java-sonar
checks your code using
Sonar. To do it, you need set
the secrets.GITHUB_TOKEN
and secrets.SONAR_TOKEN
. To more information, see
Sonar site.
latex-lint
checks LaTeX files using lacheck.
To more information, see
texlive-action
latex-release
compiles a LaTeX document and release a PDF in your GitHub
releases. To do it, edit the latex-release.yml
file and change DOCUMENT
variable to the name of root LaTeX document. It will use git tag as document
version.
python-format
checks Python code formatting using
ruff format check. To more information, see
ruff
documentation.
python-lint
checks Python code for errors using
ruff lint check. To more information, see ruff
documentation.
python-tests
performs pytest in your
project. To more information, see pytest
documentation.
python-release
builds a Python package and deploys it at
PyPI. To do it you will need create a PyPI account and
add PYPI_API_TOKEN
into your GitHub repository secrets.
python-duplication
checks Python code using
Simian for code duplication. To more
information, see Simian site.
bash-lint
checks bash scripts for bugs, bad practices and portability
problems. To more information, see shellcheck.
bash-format
checks bash scripts for bad practices in code style. To more
information, see bashate.
loc-badge
builds a lines of code (LOC) badge for your project. To more
information, see GHA-LoC-Badge.
hoc-badge
build a hits of code (HOC) badge for your project. To more
information, see
hits-of-code-badge.
xml-lint
checks XML files (*.xml
, *.xsl
, *.xsd
, *.xhtml
) using
xcop.
For more information, see xcop-action.
xml-duplication
checks for code duplication using
Simian. To more information, see Simian
site.
fsharp-build
builds an F# application at the terminal on multiple
environments: Linux, Windows, and Mac. Notice that you can specify the .NET
versions that must be available at the build environment (if your project
targets multiple versions). To change any configuration, edit the
fsharp-build.yml
file. This configuration is inspired in what we have at
Giraffe.