spring-projects / spring-aot-smoke-tests

Smoke tests for Spring's AOT and native support
https://spring-team-aot-smoke-tests-dashboard.azuremicroservices.io/
49 stars 34 forks source link

= Spring AOT 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-aot-smoke-tests"]

Smoke tests for Spring's ahead-of-time (AOT) and GraalVM native image support. Results are published to a https://spring-team-aot-smoke-tests-dashboard.azuremicroservices.io/[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' 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 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:

[source,]

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:

[source,]

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:

[source,]

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:

[source,]

./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.