release.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: Release
  2. on:
  3. push:
  4. tags:
  5. - 'v[0-9]+.[0-9]+.[0-9]+*'
  6. jobs:
  7. ci:
  8. uses: ./.github/workflows/ci.yml
  9. secrets: inherit
  10. build:
  11. needs: [ci]
  12. uses: ./.github/workflows/build.yml
  13. permissions:
  14. contents: read
  15. packages: write
  16. secrets: inherit
  17. release:
  18. needs: [build]
  19. runs-on: ubuntu-latest
  20. permissions:
  21. contents: write
  22. steps:
  23. - name: Checkout
  24. uses: actions/checkout@v2
  25. - name: Prepare notes
  26. id: notes
  27. run: |
  28. # Extract changelog entries between this and previous version headers
  29. escaped_version=$(echo ${GITHUB_REF_NAME#v} | sed -e 's/[]\/$*.^[]/\\&/g')
  30. awk "BEGIN{inrelease=0} /## \[${escaped_version}\]/{inrelease=1;next} /## \[[0-9]+\.[0-9]+\.[0-9]+.*\]/{inrelease=0;exit} {if (inrelease) print}" CHANGELOG.md \
  31. > RELEASE_NOTES.txt
  32. # Write PRERELEASE="true" env if tag name has any suffix after vMAJOR.MINOR.PATCH
  33. if [[ ${GITHUB_REF_NAME} =~ ^v[0-9]+\.[0-9]+\.[0-9]+.+ ]]; then
  34. echo "prerelease=true" >> "$GITHUB_OUTPUT"
  35. else
  36. echo "prerelease=false" >> "$GITHUB_OUTPUT"
  37. fi
  38. - name: Release
  39. uses: softprops/action-gh-release@v1
  40. with:
  41. body_path: RELEASE_NOTES.txt
  42. prerelease: ${{ fromJSON(steps.notes.outputs.prerelease) }}
  43. update-helm-chart:
  44. needs: [build]
  45. runs-on: ubuntu-latest
  46. steps:
  47. - name: Repository Dispatch
  48. uses: peter-evans/repository-dispatch@v2
  49. with:
  50. token: ${{ secrets.WORKFLOW_DISPATCH_TOKEN }}
  51. repository: imgproxy/imgproxy-helm
  52. event-type: imgproxy-version-updated
  53. client-payload: '{"tag": "${{ github.ref_name }}"}'