e5a9485925dfd4abb977202a67753a8a40e44d04
= Spring Lifecycle Smoke Tests image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=spring-lifecycle-smoke-tests"] Smoke tests for Spring Boot applications using a custom lifecycle to perform a training run with https://docs.spring.io/spring-framework/reference/integration/cds.html[CDS] or https://docs.spring.io/spring-framework/reference/integration/checkpoint-restore.html[JVM Checkpoint Restore]. Results are available on the https://github.com/spring-projects/spring-lifecycle-smoke-tests/blob/ci/STATUS.adoc[Status page]. == Repository Structure This branch contains only GitHub Actions workflows. It is the default branch in the repository to work around a limitation of GitHub Actions' https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule[scheduling support]: > Scheduled workflows run on the latest commit on the default or base branch. Additionally, scheduling will only work for a workflow that exists in the default branch. To overcome this limitation, this branch contains workflows for every smoke test found in the supported branches. If you're looking for the smoke tests themselves, please take a look at one of those other branches: - https://github.com/spring-projects/spring-lifecycle-smoke-tests/tree/main[main] == Managing the Workflows The workflows can be updated automatically but doing so relies upon a particular directory structure using Git's worktree support: [source,] ---- spring-lifecycle-smoke-tests ├── ci └── main ---- === Initial Setup To create this directory structure, first clone the repository into a directory named `ci`: [source,] ---- mkdir spring-lifecycle-smoke-tests cd spring-lifecycle-smoke-tests git clone https://github.com/spring-projects/spring-lifecycle-smoke-tests ci cd ci ---- Now, create worktrees for the `main` branch: [source,] ---- git worktree add ../main main ---- === Updating the Workflows To sync the workflows and update the status page, make sure you're in the `ci` worktree on the `ci` branch and execute the following Gradle build: [source,] ---- ./gradlew updateInfrastructure ---- This will update the workflows in the `ci` branch based on the smoke tests in each of the repository's other branches, as well as `STATUS.adoc`. Commit and push any changes.
Description
Languages
Java
97.2%
Shell
2.6%
Dockerfile
0.2%