Skip to content

Automation Thesis Wiki

Simcha Vos edited this page Mar 10, 2025 · 14 revisions

Welcome to the automations wiki! Find more details on each automation task on this page.

Artifacts

Artifact creation

Automations involved in compiling, packaging, and managing dependencies to generate an artifact.

Code compilation

Maturity: Basic

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-compiler-plugin
  • Plugin org.eclipse.tycho:tycho-compiler-plugin
  • Plugin org.eclipse.xtend:xtend-maven-plugin
  • Runs "./gradlew build"
  • Uses gradle/gradle-build-action

Dependency management of artifact

Maturity: Basic

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-dependency-plugin
  • Plugin org.eclipse.tycho:tycho-maven-plugin
  • Plugin org.codehaus.mojo:versions-maven-plugin
  • Runs "npm install"
  • Plugin org.apache.maven.plugins:maven-install-plugin
  • Plugin org.eclipse.tycho:tycho-p2-plugin

Build tasks, resources and configuration

Maturity: Advanced

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-resources-plugin
  • Plugin org.codehaus.mojo:build-helper-maven-plugin
  • Plugin org.eclipse.tycho:target-platform-configuration
  • Plugin org.apache.maven.plugins:maven-antrun-plugin
  • Plugin org.honton.chas:exists-maven-plugin
  • Plugin org.apache.maven.plugins:maven-remote-resources-plugin

Packaging

Maturity: Advanced

Examples that implement this task are:

  • Plugin org.eclipse.tycho:tycho-packaging-plugin
  • Plugin org.apache.maven.plugins:maven-jar-plugin
  • Plugin org.springframework.boot:spring-boot-maven-plugin
  • Plugin org.eclipse.tycho:tycho-maven-plugin
  • Plugin org.apache.maven.plugins:maven-shade-plugin
  • Plugin org.apache.maven.plugins:maven-war-plugin
  • Runs "./gradlew build"
  • Runs "python build"
  • Runs "poetry build"
  • Runs "mvn package"
  • Uses gradle/gradle-build-action
  • Runs "zip"
  • Runs "tar"

Release management

Automations related to every aspect of the distribution of artifacts.

Source code version control

Maturity: Intermediate

Examples that implement this task are:

  • Plugin io.github.git-commit-id:git-commit-id-maven-plugin
  • Plugin pl.project13.maven:git-commit-id-plugin
  • Plugin org.apache.maven.plugins:maven-scm-plugin
  • Runs "git diff"

Release tagging

Maturity: Intermediate

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-release-plugin
  • Plugin org.codehaus.mojo:buildnumber-maven-plugin
  • Uses actions/create-release

Generate source and metadata artifacts

Maturity: Advanced

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-source-plugin
  • Plugin org.eclipse.tycho:tycho-source-plugin
  • Plugin org.apache.felix:maven-bundle-plugin
  • Plugin biz.aQute.bnd:bnd-maven-plugin

Generate release notes

Maturity: Advanced

Examples that implement this task are:

  • Uses release-drafter/release-drafter

Publish artifacts to a registry

Maturity: Advanced

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-assembly-plugin
  • Plugin org.apache.maven.plugins:maven-deploy-plugin
  • Plugin org.sonatype.plugins:nexus-staging-maven-plugin
  • Plugin org.apache.maven.plugins:maven-release-plugin
  • Uses softprops/action-gh-release
  • Runs "twine upload"
  • Uses actions/upload-artifact
  • Uses pypa/gh-action-pypi-publish
  • Runs "poetry publish"
  • Uses actions/create-release

Containerization

Maturity: Advanced

Examples that implement this task are:

  • Uses docker/metadata-action
  • Runs "docker build"
  • Uses docker/setup-buildx-action
  • Uses docker/setup-qemu-action
  • Runs "docker run"

Push container to remote

Maturity: Advanced

Examples that implement this task are:

  • Uses docker/build-push-action
  • Runs "docker push"

Development

Pipeline

Automation workflows used in a runner for execution and optimization of CI/CD pipelines.

Build environment configuration

Maturity: Basic

Examples that implement this task are:

  • Uses docker/setup-buildx-action
  • Uses docker/setup-qemu-action
  • Uses actions/github-script
  • Uses docker/login-action
  • Runs "export"
  • Runs "source"
  • Runs "poetry run"
  • Runs "set"
  • Uses conda-incubator/setup-miniconda
  • Plugin org.codehaus.mojo:flatten-maven-plugin
  • Uses actions/setup-python
  • Uses actions/setup-java
  • Uses actions/setup-node
  • Uses docker/setup-qemu-action

Package management

Maturity: Intermediate

Examples that implement this task are:

  • Runs "python pip"
  • Runs "pip"
  • Runs "python pip"
  • Runs "poetry install"
  • Runs "python3 pip"
  • Runs "apt"
  • Runs "apt-get"
  • Runs "python setup.py"
  • Runs "pip3"
  • Runs "poetry config"
  • Uses snok/install-poetry
  • Runs "conda install"
  • Runs "brew install"
  • Runs "pipx"
  • Runs "uv"

Build files configuration

Maturity: Intermediate

Examples that implement this task are:

  • Uses actions/checkout
  • Runs "git checkout"
  • Plugin org.apache.maven.plugins:maven-clean-plugin
  • Runs "curl"
  • Runs "wget"
  • Runs "mvn clean"
  • Runs "git clone"
  • Plugin org.commonjava.maven.plugins:directory-maven-plugin
  • Runs "git fetch"

Optimization

Maturity: Advanced

Examples that implement this task are:

  • Uses actions/cache
  • Uses actions/download-artifact

Data processing tools

(optional) Maturity: Advanced

Examples that implement this task are:

  • Runs "jq"
  • Runs "awk"
  • Runs "unzip"

Code quality

Testing

Run tests

Maturity: Basic

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-surefire-plugin
  • Plugin org.eclipse.tycho:tycho-surefire-plugin
  • Plugin org.apache.maven.plugins:maven-failsafe-plugin
  • Runs "pytest"
  • Runs "python pytest"
  • Runs "make test"
  • Runs "mvn test"

Test coverage and validity

Maturity: Intermediate

Examples that implement this task are:

  • Plugin org.jacoco:jacoco-maven-plugin
  • Plugin org.codehaus.mojo:cobertura-maven-plugin
  • Runs "coverage run"
  • Runs "tox"

Generate test reports

Maturity: Intermediate

Examples that implement this task are:

  • Uses codecov/codecov-action
  • Runs "coverage report"
  • Runs "coveralls"
  • Plugin org.eluder.coveralls:coveralls-maven-plugin

Linting

Automatic code formatting

Maturity: Basic

Examples that implement this task are:

  • Plugin net.revelc.code.formatter:formatter-maven-plugin
  • Plugin com.diffplug.spotless:spotless-maven-plugin
  • Plugin net.revelc.code:impsort-maven-plugin
  • Runs "flake8"
  • Runs "black"
  • Runs "ruff check"
  • Uses psf/black
  • Plugin com.github.ekryd.sortpom:sortpom-maven-plugin

Static code quality analysis

Maturity: Basic

Examples that implement this task are:

  • Plugin com.github.spotbugs:spotbugs-maven-plugin
  • Plugin org.apache.maven.plugins:maven-pmd-plugin
  • Plugin org.codehaus.mojo:findbugs-maven-plugin
  • Plugin org.sonarsource.scanner.maven:sonar-maven-plugin
  • Plugin org.codehaus.mojo:animal-sniffer-maven-plugin
  • Plugin org.gaul:modernizer-maven-plugin
  • Runs "mypy"
  • Runs "pylint"

Static code style analysis

Maturity: Basic

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-checkstyle-plugin
  • Runs "flake8"
  • Runs "ruff check"
  • Runs "pylint"

Verify packaging correctness

Maturity: Intermediate

Examples that implement this task are:

  • Plugin org.basepom.maven:duplicate-finder-maven-plugin
  • Runs "twine check"
  • Plugin org.apache.maven.plugins:maven-enforcer-plugin

Security and compliance

License checks

Maturity: Intermediate

Examples that implement this task are:

  • Plugin com.mycila:license-maven-plugin
  • Plugin org.apache.rat:apache-rat-plugin
  • Plugin org.codehaus.mojo:license-maven-plugin

Vulnerability scans

Maturity: Advanced

Examples that implement this task are:

  • Uses github/codeql-action/init
  • Uses github/codeql-action/analyze
  • Uses github/codeql-action/autobuild

Sign artifacts

Maturity: Advanced

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-gpg-plugin

Collaboration

Documentation

Generate from source code

Maturity: Basic

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-javadoc-plugin
  • Plugin org.apache.maven.plugins:maven-plugin-plugin

Prepare or create documentation artifacts

Maturity: Intermediate

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-site-plugin
  • Uses actions/upload-pages-artifact
  • Runs "make html"
  • Uses actions/configure-pages
  • Runs "sphinx-build"
  • Runs "mkdocs"

Publish documentation

Maturity: Intermediate

Examples that implement this task are:

  • Plugin org.apache.maven.plugins:maven-scm-publish-plugin
  • Uses actions/deploy-pages
  • Uses peaceiris/actions-gh-pages
  • Uses JamesIves/github-pages-deploy-action

Social coding

Commit validation

Maturity: Intermediate

Examples that implement this task are:

  • Uses pre-commit/action
  • Runs "pre-commit run"

Bot commits

Maturity: Intermediate

Examples that implement this task are:

  • Runs "git commit"
  • Runs "git push"
  • Runs "git add"
  • Runs "git config"

Issues or PRs management

Maturity: Advanced

Examples that implement this task are:

  • Uses actions/stale
  • Uses peter-evans/create-pull-request
Clone this wiki locally