part_release.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. on:
  2. workflow_call:
  3. inputs:
  4. releaseName:
  5. required: true
  6. type: string
  7. stable:
  8. required: false
  9. type: boolean
  10. default: false
  11. name: "Release"
  12. permissions:
  13. contents: read
  14. jobs:
  15. create:
  16. name: Create Release
  17. runs-on: ubuntu-latest
  18. permissions:
  19. contents: write
  20. steps:
  21. - name: Harden Runner
  22. uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
  23. with:
  24. egress-policy: audit
  25. - name: Create prerelease
  26. if: ${{ !inputs.stable }}
  27. env:
  28. GITHUB_TOKEN: ${{ github.token }}
  29. run: |
  30. gh release create \
  31. --repo ${{ github.repository }} \
  32. --title ${{ inputs.releaseName }} \
  33. --prerelease \
  34. --generate-notes \
  35. ${{ inputs.releaseName }}
  36. - name: Create release
  37. if: ${{ inputs.stable }}
  38. env:
  39. GITHUB_TOKEN: ${{ github.token }}
  40. run: |
  41. gh release create \
  42. --repo ${{ github.repository }} \
  43. --title ${{ inputs.releaseName }} \
  44. --generate-notes \
  45. ${{ inputs.releaseName }}
  46. upload_release:
  47. name: "Upload"
  48. needs: ["create"]
  49. runs-on: ubuntu-latest
  50. permissions:
  51. id-token: write
  52. contents: write
  53. attestations: write
  54. steps:
  55. - name: Harden Runner
  56. uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
  57. with:
  58. egress-policy: audit
  59. - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
  60. - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
  61. with:
  62. name: docs
  63. path: docs
  64. - run: |
  65. tar -czvf docs.tar.gz docs
  66. - name: "Attest Documentation"
  67. id: attestation
  68. uses: actions/attest-build-provenance@520d128f165991a6c774bcb264f323e3d70747f4 # v2.2.0
  69. with:
  70. subject-path: "docs.tar.gz"
  71. - name: Copy Attestation
  72. run: cp "$ATTESTATION" docs.tar.gz.sigstore
  73. env:
  74. ATTESTATION: "${{ steps.attestation.outputs.bundle-path }}"
  75. - name: Upload
  76. env:
  77. GITHUB_TOKEN: ${{ github.token }}
  78. run: |
  79. gh release upload --clobber "${{ github.ref_name }}" \
  80. docs.tar.gz docs.tar.gz.sigstore