/single-module-template

A template used internally by Creek to bootstrap new single-module repos.

Primary LanguageJavaApache License 2.0Apache-2.0

License Coverage Status build

Maven Central

javadoc CodeQL OpenSSF Scorecard OpenSSF Best Practices

single-module template Repo

Template repo used to create other single-module repos.

Features

The template sets up the following:

Usage

Creating a new repo from the template

  1. Click the "Use this template" button on the main page and follow the instructions.
  2. Import the new repo into Coveralls.io, noting the repo token.
  3. Customise the repo in GitHub Settings->:
    1. Options->
      1. Merge Button:
        1. un-tick: Allow merge commits and Allow rebase merging.
        2. tick: Allow auto-merging and Automatically delete head branches
    2. Collaborators and teams->
      1. Manage access: add code-reviews team with the Write role.
    3. Secrets->:
      1. Actions-> Add a new repository secret called COVERALLS_REPO_TOKEN, grabbing the value from Coveralls.io.,
      2. Dependabot-> Add the same COVERALLS_REPO_TOKEN repository secret here too
  4. Customise the files in the new repo:
    1. Replace the single-module-template repo name with the name of the new project. Each place is marked with a ChangeMe comment.
    2. Replace the example api with some initial code.
    3. Replace the creek.template.module.single module name with a suitable module name. Each place is marked with a ChangeMe comment.
    4. Replace this README.md
    5. Commit changes as a PR (so you can test the PR build works!)
  5. Finish customising the repo in GitHub Settings->Branches and protect the main branch:
    1. Tick Require a pull request before merging
      1. With Require approvals set to 1.
    2. Tick Require statuc checks to pass before merging
      1. With Require branches to be up to date before merging
      2. With status checks:
        • build
        • codeQL
        • coverage/coveralls
  6. Finish customising the repo in Coveralls.io Settings->Pull Request Alerts:
    1. Tick Leave comments
    2. Set COVERAGE THRESHOLD FOR FAILURE to 80%
    3. Set COVERAGE DECREASE THRESHOLD FOR FAILURE to 1%
    4. Save changes.
  7. Use the "Set next version" GitHub workflow to set the next version inline with other Creek repos.

Gradle commands

  • ./gradlew format will format the code using Spotless.
  • ./gradlew static will run static code analysis, i.e. Spotbugs and Checkstyle.
  • ./gradlew check will run all checks and tests.
  • ./gradlew coverage will generate a Jacoco coverage report.
  • ./gradlew will run the default tasks of format, static and check.