@@ -48,36 +48,34 @@ jobs:
4848 needs : [versioning]
4949 runs-on : ubuntu-latest
5050 outputs :
51- target-branch : ${{ steps.compose-target-branch.outputs.target-branch }}
52- target-branch-exists : ${{ steps.validate-target-branch.outputs.target-branch-exists }}
51+ default-branch : ${{ steps.set-default-branch.outputs.default-branch }}
52+ target-branch : ${{ steps.set-target-branch.outputs.target-branch }}
53+ target-branch-exists : ${{ steps.check-target-branch-exists.outputs.target-branch-exists }}
5354 steps :
54- - name : ' Compose target branch name '
55- id : compose -target-branch
55+ - name : ' Set target branch'
56+ id : set -target-branch
5657 run : |
5758 if [[ "${{ inputs.promotion-type }}" == "preview" ]]; then
5859 target_branch="preview/${{ needs.versioning.outputs.friendly-version }}"
5960 elif [[ "${{ inputs.promotion-type }}" == "release" ]]; then
6061 target_branch="release/${{ needs.versioning.outputs.friendly-version }}"
6162 fi
6263
63- echo "Target branch name: $target_branch"
64+ echo "Setting target branch $target_branch. "
6465
6566 echo "target-branch=$target_branch" >> $GITHUB_OUTPUT
66- # - name: 'Get default branch'
67- # - id: get-default-branch
68- # run: |
69- # set +e
70- # default_branch=$(git remote show origin | grep 'HEAD branch' | awk '{print $NF}')
71- # echo "default-branch=$default_branch" >> $GITHUB_OUTPUT
72- # set -e
7367 - name : ' Get default branch'
74- id : get -default-branch
68+ id : set -default-branch
7569 env :
7670 GH_TOKEN : ${{ github.token }}
7771 run : |
78- echo $(gh api repos/${{ github.repository }} --jq '.default_branch')
79- - name : ' Validate target branch in origin'
80- id : validate-target-branch
72+ default_branch=$(gh api repos/${{ github.repository }} --jq '.default_branch')
73+
74+ echo "Setting default branch $default_branch."
75+
76+ echo "default-branch=$default_branch" >> $GITHUB_OUTPUT
77+ - name : ' Check if target branch exists'
78+ id : check-target-branch-exists
8179 env :
8280 target-branch : ${{ needs.workflow-variables.outputs.target-branch }}
8381 run : |
@@ -86,10 +84,10 @@ jobs:
8684 git ls-remote --exit-code --heads origin ${{ env.target-branch }}
8785
8886 if [[ $? -eq 0 ]]; then
89- echo "Target branch exist: ${{ env.target-branch }}"
87+ echo "Target ${{ env.target-branch }} branch does exist. "
9088 target_branch_exists="true"
9189 else
92- echo "Target branch does not exist: ${{ env.target-branch }}"
90+ echo "Target branch ${{ env.target-branch }} does not exist. "
9391 target_branch_exists="false"
9492 fi
9593
@@ -101,13 +99,20 @@ jobs:
10199 name : ' Validate promotion'
102100 needs : [ versioning, workflow-variables ]
103101 runs-on : ubuntu-latest
102+ env :
103+ is-development-branch : ${{ env.is-development-branch }}
104+ is-maintenance-branch : ${{ env.is-maintenance-branch }}
105+ promotion-type : ${{ inputs.promotion-type }}
106+ default-branch : ${{ needs.workflow-variables.outputs.default-branch }}
107+ source-branch : ${{ github.ref_name }}
108+ target-branch : ${{ needs.workflow-variables.outputs.target-branch }}
104109 outputs :
105110 target-branch : ${{ steps.compose-target-branch.outputs.target-branch }}
106111 steps :
107112 - name : ' Checkout ${{ github.head_ref || github.ref }}'
108113 uses : actions/checkout@v5
109114 - name : ' Check promotion type'
110- if : ${{ (inputs .promotion-type != 'release') && (inputs.promotion-type != 'preview') }}
115+ if : ${{ (env .promotion-type != 'release') && (inputs.promotion-type != 'preview') }}
111116 run : |
112117 echo "Invalid promotion type: ${{ inputs.promotion-type }}"
113118 exit 1
@@ -116,6 +121,18 @@ jobs:
116121 run : |
117122 echo "Invalid source branch: ${{ github.ref_name }}"
118123 exit 1
124+ - name : ' Validate source branch'
125+ if : ${{ (env.is-development-branch == 'false') && (env.is-maintenance-branch == 'false') }}
126+ run : |
127+ echo "Invalid source branch: ${{ github.ref_name }}"
128+ exit 1
129+ - name : ' Validate default and source branch'
130+ if : ${{ (env.default-branch == env.source-branch) }}
131+ run : |
132+ echo "Default and source branch cannot be the same."
133+ echo "Default: '${{ env.default-branch }}'"
134+ echo "Source: '${{ env.source-branch }}'"
135+ exit 1
119136
120137 promote-branch :
121138 name : ' Promote branch ${{ github.ref_name }} to ${{ needs.workflow-variables.outputs.target-branch }}'
0 commit comments