continuous-integration-workflow.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. name: CI
  2. on:
  3. push:
  4. branches-ignore:
  5. - "dependabot/**"
  6. schedule:
  7. - cron: '0 10 * * *' # Once per day at 10am UTC
  8. workflow_dispatch: # Manual trigger
  9. env:
  10. DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
  11. permissions:
  12. contents: read
  13. jobs:
  14. build:
  15. name: Build
  16. uses: spring-io/spring-security-release-tools/.github/workflows/build.yml@v1
  17. strategy:
  18. matrix:
  19. os: [ ubuntu-latest, windows-latest ]
  20. jdk: [ 17 ]
  21. with:
  22. runs-on: ${{ matrix.os }}
  23. java-version: ${{ matrix.jdk }}
  24. distribution: temurin
  25. secrets: inherit
  26. test:
  27. name: Test Against Snapshots
  28. uses: spring-io/spring-security-release-tools/.github/workflows/test.yml@v1
  29. strategy:
  30. matrix:
  31. include:
  32. - java-version: 21-ea
  33. toolchain: 21
  34. - java-version: 17
  35. toolchain: 17
  36. with:
  37. java-version: ${{ matrix.java-version }}
  38. test-args: --refresh-dependencies -PforceMavenRepositories=snapshot,https://oss.sonatype.org/content/repositories/snapshots -PisOverrideVersionCatalog -PtestToolchain=${{ matrix.toolchain }} -PspringFrameworkVersion=7.+ -PreactorVersion=2025.+ -PspringDataVersion=2025.+ --stacktrace
  39. secrets: inherit
  40. deploy-artifacts:
  41. name: Deploy Artifacts
  42. needs: [ build, test]
  43. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml@v1
  44. with:
  45. should-deploy-artifacts: ${{ needs.build.outputs.should-deploy-artifacts }}
  46. default-publish-milestones-central: true
  47. secrets: inherit
  48. deploy-docs:
  49. name: Deploy Docs
  50. needs: [ build, test ]
  51. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-docs.yml@v1
  52. with:
  53. should-deploy-docs: ${{ needs.build.outputs.should-deploy-artifacts }}
  54. secrets: inherit
  55. deploy-schema:
  56. name: Deploy Schema
  57. needs: [ build, test ]
  58. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml@v1
  59. with:
  60. should-deploy-schema: ${{ needs.build.outputs.should-deploy-artifacts }}
  61. secrets: inherit
  62. perform-release:
  63. name: Perform Release
  64. needs: [ deploy-artifacts, deploy-docs, deploy-schema ]
  65. uses: spring-io/spring-security-release-tools/.github/workflows/perform-release.yml@v1
  66. with:
  67. should-perform-release: ${{ needs.deploy-artifacts.outputs.artifacts-deployed }}
  68. project-version: ${{ needs.deploy-artifacts.outputs.project-version }}
  69. milestone-repo-url: https://repo1.maven.org/maven2
  70. release-repo-url: https://repo1.maven.org/maven2
  71. artifact-path: org/springframework/security/spring-security-core
  72. slack-announcing-id: spring-security-announcing
  73. secrets: inherit
  74. send-notification:
  75. name: Send Notification
  76. needs: [ perform-release ]
  77. if: ${{ !success() }}
  78. runs-on: ubuntu-latest
  79. steps:
  80. - name: Send Notification
  81. uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1
  82. with:
  83. webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }}