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,https://oss.sonatype.org/content/repositories/snapshots -PisOverrideVersionCatalog -PtestToolchain=${{ matrix.toolchain }} -PspringFrameworkVersion=7.+ -PreactorVersion=2025.+ -PspringDataVersion=2025.+ --stacktrace secrets: inherit deploy-artifacts: name: Deploy Artifacts needs: [ build, test] 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 ] 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 ] 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 }}