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 LONGsec rsa4096/0123456789ABDEF0 2025-05-06 [SC] ABCDEF0123456789ABCDEF0123456789ABCDEF01 uid [ultimate] Your Name [email protected] 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.