Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 1.68 KB

README.md

File metadata and controls

26 lines (16 loc) · 1.68 KB

Jopiter Backend

This project contains all the source code for Jopiter's backend. Every file is released under the GNU Affero General Public License v3.0 or later, unless stated otherwise.

Docker

Production

Current production environment can be found at https://persephone.jopiter.app/api/v1/docs/swagger

Dockerfile Creation and Tagging

Our Dockerfile is created with a predetermined sequence of steps to set up our environment, and Docker uses it to build an image for the backend.

During the release process, we use a Kotlin-based DSL called github-workflows-kt in our release.main.kts script to automate the build, tag, and push of our Docker image to DockerHub. This script handles setting up the Java Development Kit (JDK 17), creating the ShadowJar using :bootJar Gradle task, logging into DockerHub, and finally building and pushing the Docker image.

Relevant steps in our release process:

  • Setup JDK: SetupJavaV4(javaVersion = "17", distribution = SetupJavaV4.Distribution.Adopt)
  • Checkout source code.
  • Create ShadowJar with GradleBuildActionV2(arguments = ":bootJar")
  • Login to DockerHub with provided DockerHub username and secret token.
  • Build and push Docker image using BuildPushActionV5. The image is tagged as jopiterapp/jopiter-backend:latest and jopiterapp/jopiter-backend:$version

Remember to replace $version with the version number for the release. Version number is automatically extracted from the tag of the Git push event.

You can refer to the release.main.kts script for more details.