Skip to content

Automation Thesis Wiki

Simcha Vos edited this page Mar 9, 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

  • 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