https://github.com/spring-projects/spring-lifecycle-smoke-tests
https://github.com/spring-projects/spring-lifecycle-smoke-tests
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/spring-projects/spring-lifecycle-smoke-tests
- Owner: spring-projects
- Created: 2023-06-21T16:08:36.000Z (almost 2 years ago)
- Default Branch: ci
- Last Pushed: 2025-01-03T09:18:32.000Z (5 months ago)
- Last Synced: 2025-01-31T04:42:33.435Z (4 months ago)
- Language: Java
- Size: 491 KB
- Stars: 31
- Watchers: 7
- Forks: 20
- Open Issues: 10
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE.txt
- Security: security/ldap-client/README.md
Awesome Lists containing this project
README
= 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
├── 3.3.x
├── 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 `3.3.x` and `main` branches:
[source,]
----
git worktree add ../main main
git worktree add ../3.3.x 3.3.x
----=== 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.