Skip to content

Latest commit

 

History

History
80 lines (55 loc) · 2.86 KB

README.adoc

File metadata and controls

80 lines (55 loc) · 2.86 KB

Spring AOT Smoke Tests Revved up by Develocity

Smoke tests for Spring’s ahead-of-time (AOT) and GraalVM native image support. Results are published to a dashboard.

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' 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 3.0.x, 3.1.x, 3.2.x, 3.3.x and main branches. If you’re looking for the smoke tests themselves, please take a look at one of those other branches:

Managing the Workflows

The workflows can be updated automatically but doing so relies upon a particular directory structure using Git’s worktree support:

spring-aot-smoke-tests
├── 3.0.x
├── 3.1.x
├── 3.2.x
├── 3.3.x
├── ci
└── main

Initial Setup

To create this directory structure, first clone the repository into a directory named ci:

mkdir spring-aot-smoke-tests
cd spring-aot-smoke-tests
git clone https://github.com/spring-projects/spring-aot-smoke-tests ci
cd ci

Now, create worktrees for the 3.0.x, 3.1.x, 3.2.x, 3.3.x, and main branches:

git worktree add ../3.0.x 3.0.x
git worktree add ../3.1.x 3.1.x
git worktree add ../3.2.x 3.2.x
git worktree add ../3.3.x 3.3.x
git worktree add ../main main

The smoke tests resolve commercial dependencies from https://repo.spring.io which requires authentication. Use the REPO_SPRING_IO_USERNAME and REPO_SPRING_IO_PASSWORD environment variables to provide the necessary credentials.

Updating the Workflows

To sync the workflows, make sure you’re in the ci worktree on the ci branch and execute the following Gradle build:

./gradlew syncGitHubActionsWorkflows

This will update the workflows in the ci branch based on the smoke tests in each of the repository’s other branches. Commit and push any changes.