|
14 | 14 | required: true |
15 | 15 | type: string |
16 | 16 | description: 'The tag name of the release with leading v' |
17 | | - prerelease: |
18 | | - description: 'Release as pre-release' |
19 | | - required: true |
20 | | - default: false |
21 | | - type: boolean |
| 17 | + release_type: |
| 18 | + description: 'Choose relase type' |
| 19 | + default: latest |
| 20 | + required: false |
| 21 | + type: choice |
| 22 | + options: |
| 23 | + - latest |
| 24 | + - prerelase |
| 25 | + - regular |
22 | 26 | draft: |
23 | 27 | description: 'Draft release' |
24 | 28 | required: true |
25 | 29 | default: false |
26 | 30 | type: boolean |
27 | | - latest: |
28 | | - description: 'Label the release as the latest' |
29 | | - required: true |
30 | | - default: true |
31 | | - type: boolean |
32 | 31 | autoChangelog: |
33 | 32 | description: 'Auto generated release notes' |
34 | 33 | required: true |
|
43 | 42 | TARGET_REPO: ${{ inputs.target_repo }} |
44 | 43 | COMMIT_HASH: ${{ inputs.sha }} |
45 | 44 | TAG_NAME: ${{ inputs.tag_name }} |
46 | | - PRE_RELEASE: ${{ inputs.prerelease }} |
| 45 | + RELEASE_TYPE: ${{ inputs.release_type }} |
47 | 46 | DRAFT: ${{ inputs.draft }} |
48 | | - LASTEST: ${{ inputs.latest }} |
49 | 47 | AUTO_CHANGELOG: ${{ inputs.autoChangelog }} |
50 | 48 | CHANGELOG: ${{ inputs.changeLog }} |
51 | 49 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
52 | 50 |
|
53 | 51 | jobs: |
54 | 52 | display-parameters: |
55 | 53 | runs-on: ubuntu-latest |
| 54 | + outputs: |
| 55 | + latest: ${{ steps.step1.outputs.latest }} |
| 56 | + prerelease: ${{ steps.step1.outputs.prerelase }} |
56 | 57 | steps: |
57 | 58 | - name: Display parameters |
| 59 | + id: step1 |
58 | 60 | run: | |
| 61 | + if [[ $RELEASE_TYPE == "prerelase" ]]; then |
| 62 | + PRE_RELEASE=true |
| 63 | + LATEST=false |
| 64 | + elif [[ $RELEASE_TYPE == "latest" ]]; then |
| 65 | + PRE_RELEASE=false |
| 66 | + LATEST=true |
| 67 | + elif [[ $RELEASE_TYPE == "regular" ]]; then |
| 68 | + PRE_RELEASE=false |
| 69 | + LATEST=false |
| 70 | + fi |
| 71 | +
|
| 72 | + # Set outputs |
| 73 | + echo "latest=$LATEST" >> "$GITHUB_OUTPUT" |
| 74 | + echo "prerelase=$PRE_RELEASE" >> "$GITHUB_OUTPUT" |
| 75 | +
|
59 | 76 | echo "Target repository: $TARGET_REPO" >> $GITHUB_STEP_SUMMARY |
60 | 77 | echo "Commit hash: $COMMIT_HASH" >> $GITHUB_STEP_SUMMARY |
61 | 78 | echo "Tag name: $TAG_NAME" >> $GITHUB_STEP_SUMMARY |
62 | | - echo "Pre-release: $PRE_RELEASE" >> $GITHUB_STEP_SUMMARY |
63 | 79 | echo "Draft: $DRAFT" >> $GITHUB_STEP_SUMMARY |
64 | | - echo "Latest: $LATEST" >> $GITHUB_STEP_SUMMARY |
65 | 80 | echo "Auto changelog: $AUTO_CHANGELOG" >> $GITHUB_STEP_SUMMARY |
66 | 81 | echo "Custom changelog: $CHANGELOG" >> $GITHUB_STEP_SUMMARY |
| 82 | + echo "Release type: $RELEASE_TYPE" >> $GITHUB_STEP_SUMMARY |
| 83 | + echo "Pre-release: $PRE_RELEASE" >> $GITHUB_STEP_SUMMARY |
| 84 | + echo "Latest: $LATEST" >> $GITHUB_STEP_SUMMARY |
67 | 85 |
|
68 | 86 | create-release: |
69 | 87 | runs-on: ubuntu-latest |
70 | 88 | environment: production |
71 | | - |
| 89 | + needs: display-parameters |
72 | 90 | steps: |
73 | 91 | - name: Check exitence of commit hash and tag name in target repo |
74 | 92 | run: | |
|
95 | 113 | fi |
96 | 114 |
|
97 | 115 | - name: Create a release in target repo |
| 116 | + env: |
| 117 | + LATEST: ${{ needs.display-parameters.outputs.latest }} |
| 118 | + PRE_RELEASE: ${{ needs.display-parameters.outputs.prerelease }} |
98 | 119 | run: | |
99 | 120 | # Create release in target repo with default release notes |
100 | 121 |
|
|
0 commit comments