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.

release.yml 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. name: Release
  2. # This workflow is triggered when publishing a GitHub release
  3. on:
  4. release:
  5. types:
  6. - published
  7. env:
  8. PYTHONUNBUFFERED: 1
  9. jobs:
  10. run_release:
  11. runs-on: ubuntu-latest
  12. name: Start release process
  13. timeout-minutes: 60
  14. steps:
  15. - name: Configure AWS Credentials
  16. uses: aws-actions/configure-aws-credentials@v1
  17. with:
  18. aws-access-key-id: ${{ secrets.BINARIES_AWS_ACCESS_KEY_ID }}
  19. aws-secret-access-key: ${{ secrets.BINARIES_AWS_SECRET_ACCESS_KEY }}
  20. aws-region: ${{ secrets.BINARIES_AWS_REGION }}
  21. - name: Run release action
  22. id: run_release
  23. uses: SonarSource/gh-action_release/main@v4
  24. with:
  25. distribute: true
  26. publish_to_binaries: true
  27. attach_artifacts_to_github_release: true
  28. run_rules_cov: false
  29. slack_channel: sonarqube-build
  30. env:
  31. ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }}
  32. BURGRX_USER: ${{ secrets.BURGRX_USER }}
  33. BURGRX_PASSWORD: ${{ secrets.BURGRX_PASSWORD }}
  34. CIRRUS_TOKEN: ${{ secrets.CIRRUS_TOKEN }}
  35. PATH_PREFIX: ${{ secrets.BINARIES_PATH_PREFIX }}
  36. GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
  37. RELEASE_SSH_USER: ${{ secrets.RELEASE_SSH_USER }}
  38. RELEASE_SSH_KEY: ${{ secrets.RELEASE_SSH_KEY }}
  39. SLACK_API_TOKEN: ${{secrets.SLACK_API_TOKEN }}
  40. - name: Log outputs
  41. if: always()
  42. run: |
  43. echo "${{ steps.run_release.outputs.releasability }}"
  44. echo "${{ steps.run_release.outputs.release }}"
  45. echo "${{ steps.run_release.outputs.distribute_release }}"
  46. - name: Notify success on Slack
  47. uses: Ilshidur/action-slack@2.0.0
  48. env:
  49. SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
  50. with:
  51. args: "Release successful for {{ GITHUB_REPOSITORY }} by {{ GITHUB_ACTOR }}"
  52. - name: Create Release for Docker Image
  53. id: create_release
  54. uses: softprops/action-gh-release@v1
  55. env:
  56. GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
  57. GITHUB_REPOSITORY: SonarSource/sonar-scanner-cli-docker
  58. with:
  59. tag_name: ${{ github.event.release.tag_name }}
  60. body: Release containing ScannerCLI version ${{ github.event.release.tag_name }}
  61. draft: false
  62. prerelease: false
  63. - name: Notify failures on Slack
  64. uses: Ilshidur/action-slack@2.0.0
  65. if: failure()
  66. env:
  67. SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
  68. with:
  69. args: "Release failed, see the logs at https://github.com/{{ GITHUB_REPOSITORY }}/actions by {{ GITHUB_ACTOR }}"
  70. maven-central-sync:
  71. runs-on: ubuntu-latest
  72. needs:
  73. - run_release
  74. steps:
  75. - name: Setup JFrog CLI
  76. uses: jfrog/setup-jfrog-cli@v1
  77. - name: JFrog config
  78. run: jfrog rt config repox --url https://repox.jfrog.io/artifactory/ --apikey $ARTIFACTORY_API_KEY --basic-auth-only
  79. env:
  80. ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }}
  81. - name: Get the version
  82. id: get_version
  83. run: |
  84. IFS=. read major minor patch build <<< "${{ github.event.release.tag_name }}"
  85. echo ::set-output name=build::"${build}"
  86. - name: Create local repository directory
  87. id: local_repo
  88. run: echo ::set-output name=dir::"$(mktemp -d repo.XXXXXXXX)"
  89. - name: Download Artifacts
  90. uses: SonarSource/gh-action_release/download-build@v4
  91. with:
  92. build-number: ${{ steps.get_version.outputs.build }}
  93. local-repo-dir: ${{ steps.local_repo.outputs.dir }}
  94. - name: Maven Central Sync
  95. id: maven-central-sync
  96. continue-on-error: true
  97. uses: SonarSource/gh-action_release/maven-central-sync@v4
  98. with:
  99. local-repo-dir: ${{ steps.local_repo.outputs.dir }}
  100. env:
  101. OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
  102. OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
  103. - name: Notify on failure
  104. if: ${{ failure() || steps.maven-central-sync.outcome == 'failure' }}
  105. uses: 8398a7/action-slack@v3
  106. with:
  107. status: failure
  108. fields: repo,author,eventName
  109. env:
  110. SLACK_WEBHOOK_URL: ${{ secrets.SLACK_BUILD_WEBHOOK }}