QSP Authentication application is a core module of the QSP platform. This application provides OAuth authentication for users.
- Java 25+
- Maven
- Postgresql 17+
Setup the database connection. As example by environment variable:
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/qsp
SPRING_DATASOURCE_USERNAME=qsp
SPRING_DATASOURCE_PASSWORD=qsp_password
Start the application with:
mvn spring-boot:run -f pom.xmlThe GitHub Actions workflow is defined in .github/workflows/ci.yaml.
On pull requests targeting main, and on pushes to main or ciTest, the pipeline:
- checks out the sources;
- installs Temurin JDK 25;
- runs Maven verification with
./mvnw --batch-mode --update-snapshots verify; - uploads the generated JAR as a workflow artifact.
On pushes to main, after the Maven build succeeds, the pipeline also builds and pushes the Docker image:
f4fez/qsp-authentication-server:latest
Releases are started manually from GitHub Actions with the Authentication server CI workflow and the Run workflow button on the main branch.
The release job:
- configures Git for the GitHub Actions bot;
- runs the Maven Release Plugin with
release:prepare release:perform; - updates the project version for the release, commits the next
-SNAPSHOTversion, and creates a Git tag namedv<version>; - creates a GitHub Release from the generated tag;
- attaches the generated JAR to the GitHub Release;
- builds and pushes Docker images tagged with the released version and
latest.
The Docker images pushed during a release are:
f4fez/qsp-authentication-server:<version>
f4fez/qsp-authentication-server:latest
- Go to the repository on GitHub.
- Open
Actions. - Select
Authentication server CI. - Click
Run workflow. - Select the
mainbranch. - Optionally set:
release_version, for example1.0.0;development_version, for example1.0.1-SNAPSHOT.
- Start the workflow.
If no version is provided, the Maven Release Plugin uses the current project version without -SNAPSHOT as the release version and computes the next development version.
The pipeline requires the following repository secrets to push the Docker image:
DOCKER_HUB_USERNAME
DOCKER_HUB_TOKEN
The repository must also allow GITHUB_TOKEN to push the release commits and Git tag, and to create the GitHub Release.