continuous-integration-workflow.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. deploy-artifacts:
  27. name: Deploy Artifacts
  28. needs: [ build]
  29. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml@v1
  30. with:
  31. should-deploy-artifacts: ${{ needs.build.outputs.should-deploy-artifacts }}
  32. default-publish-milestones-central: true
  33. secrets: inherit
  34. deploy-docs:
  35. name: Deploy Docs
  36. needs: [ build ]
  37. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-docs.yml@v1
  38. with:
  39. should-deploy-docs: ${{ needs.build.outputs.should-deploy-artifacts }}
  40. secrets: inherit
  41. deploy-schema:
  42. name: Deploy Schema
  43. needs: [ build ]
  44. uses: spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml@v1
  45. with:
  46. should-deploy-schema: ${{ needs.build.outputs.should-deploy-artifacts }}
  47. secrets: inherit
  48. perform-release:
  49. name: Perform Release
  50. needs: [ deploy-artifacts, deploy-docs, deploy-schema ]
  51. uses: spring-io/spring-security-release-tools/.github/workflows/perform-release.yml@v1
  52. with:
  53. should-perform-release: ${{ needs.deploy-artifacts.outputs.artifacts-deployed }}
  54. project-version: ${{ needs.deploy-artifacts.outputs.project-version }}
  55. milestone-repo-url: https://repo1.maven.org/maven2
  56. release-repo-url: https://repo1.maven.org/maven2
  57. artifact-path: org/springframework/security/spring-security-core
  58. slack-announcing-id: spring-security-announcing
  59. secrets: inherit
  60. send-notification:
  61. name: Send Notification
  62. needs: [ perform-release ]
  63. if: ${{ !success() }}
  64. runs-on: ubuntu-latest
  65. steps:
  66. - name: Send Notification
  67. uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1
  68. with:
  69. webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }}