From a401bdbea7b56399b922f8384ba9896e06a6bed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 16 Jul 2024 15:59:10 +0200 Subject: [PATCH] Add README --- README.adoc | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.adoc diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..211a9d5 --- /dev/null +++ b/README.adoc @@ -0,0 +1,66 @@ += 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.