You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
4.2 KiB
109 lines
4.2 KiB
name: CI |
|
|
|
on: |
|
push: |
|
branches-ignore: |
|
- "dependabot/**" |
|
schedule: |
|
- cron: '0 10 * * *' # Once per day at 10am UTC |
|
workflow_dispatch: # Manual trigger |
|
|
|
env: |
|
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} |
|
|
|
permissions: |
|
contents: read |
|
|
|
jobs: |
|
build: |
|
name: Build |
|
uses: spring-io/spring-security-release-tools/.github/workflows/build.yml@v1 |
|
strategy: |
|
matrix: |
|
os: [ ubuntu-latest, windows-latest ] |
|
jdk: [ 17 ] |
|
with: |
|
runs-on: ${{ matrix.os }} |
|
java-version: ${{ matrix.jdk }} |
|
distribution: temurin |
|
secrets: inherit |
|
test: |
|
name: Test Against Snapshots |
|
uses: spring-io/spring-security-release-tools/.github/workflows/test.yml@v1 |
|
strategy: |
|
matrix: |
|
include: |
|
- java-version: 21-ea |
|
toolchain: 21 |
|
- java-version: 17 |
|
toolchain: 17 |
|
with: |
|
java-version: ${{ matrix.java-version }} |
|
test-args: --refresh-dependencies -PforceMavenRepositories=snapshot -PisOverrideVersionCatalog -PtestToolchain=${{ matrix.toolchain }} -PspringFrameworkVersion=6.2.+ -PreactorVersion=2023.0.+ -PspringDataVersion=2024.0.+ --stacktrace |
|
secrets: inherit |
|
check-samples: |
|
name: Check Samples |
|
runs-on: ubuntu-latest |
|
if: ${{ github.repository_owner == 'spring-projects' }} |
|
steps: |
|
- uses: actions/checkout@v4 |
|
- name: Set up gradle |
|
uses: spring-io/spring-gradle-build-action@v2 |
|
with: |
|
java-version: 17 |
|
distribution: temurin |
|
- name: Check samples project |
|
env: |
|
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos |
|
SAMPLES_DIR: ../spring-security-samples |
|
run: | |
|
# Extract version from gradle.properties |
|
version=$(cat gradle.properties | grep "version=" | awk -F'=' '{print $2}') |
|
# Extract samplesBranch from gradle.properties |
|
samples_branch=$(cat gradle.properties | grep "samplesBranch=" | awk -F'=' '{print $2}') |
|
./gradlew publishMavenJavaPublicationToLocalRepository |
|
./gradlew cloneRepository -PrepositoryName="spring-projects/spring-security-samples" -Pref="$samples_branch" -PcloneOutputDirectory="$SAMPLES_DIR" |
|
./gradlew --refresh-dependencies --project-dir "$SAMPLES_DIR" --init-script spring-security-ci.gradle -PlocalRepositoryPath="$LOCAL_REPOSITORY_PATH" -PspringSecurityVersion="$version" test integrationTest |
|
deploy-artifacts: |
|
name: Deploy Artifacts |
|
needs: [ build, test, check-samples ] |
|
uses: spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml@v1 |
|
with: |
|
should-deploy-artifacts: ${{ needs.build.outputs.should-deploy-artifacts }} |
|
secrets: inherit |
|
deploy-docs: |
|
name: Deploy Docs |
|
needs: [ build, test, check-samples ] |
|
uses: spring-io/spring-security-release-tools/.github/workflows/deploy-docs.yml@v1 |
|
with: |
|
should-deploy-docs: ${{ needs.build.outputs.should-deploy-artifacts }} |
|
secrets: inherit |
|
deploy-schema: |
|
name: Deploy Schema |
|
needs: [ build, test, check-samples ] |
|
uses: spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml@v1 |
|
with: |
|
should-deploy-schema: ${{ needs.build.outputs.should-deploy-artifacts }} |
|
secrets: inherit |
|
perform-release: |
|
name: Perform Release |
|
needs: [ deploy-artifacts, deploy-docs, deploy-schema ] |
|
uses: spring-io/spring-security-release-tools/.github/workflows/perform-release.yml@v1 |
|
with: |
|
should-perform-release: ${{ needs.deploy-artifacts.outputs.artifacts-deployed }} |
|
project-version: ${{ needs.deploy-artifacts.outputs.project-version }} |
|
milestone-repo-url: https://repo.spring.io/artifactory/milestone |
|
release-repo-url: https://repo1.maven.org/maven2 |
|
artifact-path: org/springframework/security/spring-security-core |
|
slack-announcing-id: spring-security-announcing |
|
secrets: inherit |
|
send-notification: |
|
name: Send Notification |
|
needs: [ perform-release ] |
|
if: ${{ !success() }} |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Send Notification |
|
uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1 |
|
with: |
|
webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }}
|
|
|