Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mstachniuk/41ca2bd6cf115b6d636f529aa507b0b3 to your computer and use it in GitHub Desktop.
Save mstachniuk/41ca2bd6cf115b6d636f529aa507b0b3 to your computer and use it in GitHub Desktop.
object Travis Gradle Shipkit Git Bintray GitHub
Gradle->Shipkit: task bumpVersionFile
note right of Shipkit: Update values in version.properties
Shipkit->Gradle:
Gradle->Shipkit: task identifyGitBranch
note right of Shipkit: See above sequence for releaseNeeded for more details
Shipkit->Gradle:
Gradle->Shipkit: task fetchContributors
Shipkit->GitHub: Fetching all GitHub contributors
GitHub->Gradle:
Gradle->Shipkit: task fetchReleaseNotes
Shipkit->Git: Fetch data about changes from the last release
note right of Git: Execute: git log --pretty=%ad --date=iso v0.0.1 -n 1 \n git fetch origin +refs/tags/v0.0.1:refs/tags/v0.0.1 \n git log v0.0.1..HEAD
Git->Shipkit:
Shipkit->GitHub: Get information about GitHub issues
GitHub->Gradle:
Gradle->Shipkit: task updateReleaseNotes
note right of Shipkit: Generate Release Notes
Shipkit->Gradle:
Gradle->Shipkit: task gitCommit
Shipkit->Git: Commit release notes and version.properties
Git->Gradle:
Gradle->Shipkit: task gitTag
Shipkit->Git: Create tag
note right of Git: Execute: \n git tag -a v0.0.2 -m "Created new tag v0.0.2 [ci skip]" \n [ci skip] for not triggering infinite build loop on CI
Git->Gradle:
Gradle->Shipkit: task gitPush
Shipkit->Git: Push commit and tag
note right of Git: GitHub write token is used here
Git->Gradle:
Gradle->Shipkit: task performGitPush
note right of Shipkit: This task only aggregate tasks: \n - gitCommit \n - gitTag \n - gitPush
Shipkit->Gradle:
note right of Gradle: Only if org.shipkit.javadoc plugin is applied BEGIN
Gradle->Shipkit: task copyJavadocToStageVersionDir
note right of Shipkit: Copy unpacked Javadoc from JAR to stage dir \n for each subproject
Shipkit->Gradle:
Gradle->Shipkit: task refreshVersionJavadoc
note right of Shipkit: Aggregate all copyJavadocToStageVersionDir tasks
Shipkit->Gradle:
Gradle->Shipkit: task cloneJavadocRepo
note right of Shipkit: Only if Javadoc stage dir is NOT empty \n Clones to the repo dir
Shipkit->Gradle:
Gradle->Shipkit: task checkoutJavadocRepoBranch
Shipkit->Gradle:
Gradle->Shipkit: task copyJavadocToStageCurrentDir
note right of Shipkit: For each subproject
Shipkit->Gradle:
Gradle->Shipkit: task refreshCurrentJavadoc
note right of Shipkit: Aggregate all copyJavadocToStageCurrentDir tasks
Shipkit->Gradle:
Gradle->Shipkit: task copyJavadocStageToRepoDir
Shipkit->Gradle:
Gradle->Shipkit: task commitJavadoc
Shipkit->Gradle:
Gradle->Shipkit: task pushJavadoc
Shipkit->Gradle:
Gradle->Shipkit: task releaseJavadoc
note right of Shipkit: Aggregate all tasks needed to release Javadoc
Shipkit->Gradle:
note right of Gradle: Only if org.shipkit.javadoc plugin is applied END
Gradle->Shipkit: task updateReleaseNotesOnGitHub
note right of Shipkit: Upload release notes to GitHub Releases Page \n E.g.: https://github.com/mockito/shipkit/releases
Shipkit->Gradle:
note right of Shipkit: Final check if property dryRun is set, e.g.: \n ./gradlew performRelease -PdryRun \n It's useful for local testing
Gradle->Shipkit: task bintrayUpload
Shipkit->Bintray: upload artifacts
Bintray->Gradle: Release shipped! Thank you for using Shipkit!
Gradle->Travis: DONE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment