|
4 | 4 | workflow_call: |
5 | 5 | secrets: |
6 | 6 | RELEASE_TOKEN: |
7 | | - required: true |
| 7 | + required: false |
| 8 | + APP_ID: |
| 9 | + required: false |
| 10 | + APP_PRIVATE_KEY: |
| 11 | + required: false |
8 | 12 | inputs: |
9 | 13 | default_version: |
10 | 14 | description: 'Default version if no input is provided' |
@@ -63,12 +67,36 @@ jobs: |
63 | 67 | is_release: ${{ steps.version.outputs.is_release }} |
64 | 68 | semver: ${{ steps.version.outputs.semver }} |
65 | 69 | steps: |
| 70 | + - name: Validate auth configuration |
| 71 | + id: auth-check |
| 72 | + env: |
| 73 | + RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
| 74 | + APP_ID: ${{ secrets.APP_ID }} |
| 75 | + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} |
| 76 | + run: | |
| 77 | + if [ -n "${APP_ID}" ] && [ -n "${APP_PRIVATE_KEY}" ]; then |
| 78 | + echo "use_app_auth=true" >> $GITHUB_OUTPUT |
| 79 | + elif [ -n "${RELEASE_TOKEN}" ]; then |
| 80 | + echo "use_app_auth=false" >> $GITHUB_OUTPUT |
| 81 | + else |
| 82 | + echo "::error::Either RELEASE_TOKEN or both APP_ID and APP_PRIVATE_KEY must be set" |
| 83 | + exit 1 |
| 84 | + fi |
| 85 | +
|
| 86 | + - name: Generate a token |
| 87 | + id: generate-token |
| 88 | + if: steps.auth-check.outputs.use_app_auth == 'true' |
| 89 | + uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1 |
| 90 | + with: |
| 91 | + client-id: ${{ secrets.APP_ID }} |
| 92 | + private-key: ${{ secrets.APP_PRIVATE_KEY }} |
| 93 | + |
66 | 94 | - name: Checkout repository |
67 | 95 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
68 | 96 | with: |
69 | 97 | ref: ${{ inputs.ref || github.ref }} |
70 | 98 | # token: ${{ secrets.GITHUB_TOKEN }} |
71 | | - token: ${{ secrets.RELEASE_TOKEN }} |
| 99 | + token: ${{ steps.generate-token.outputs.token || secrets.RELEASE_TOKEN }} |
72 | 100 | fetch-depth: 0 |
73 | 101 |
|
74 | 102 | - name: Setup Node.js |
|
87 | 115 | # env: |
88 | 116 | # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
89 | 117 | env: |
90 | | - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
| 118 | + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token || secrets.RELEASE_TOKEN }} |
91 | 119 |
|
92 | 120 | - name: Get version info |
93 | 121 | id: version |
|
0 commit comments