Skip to content

Commit 5b0a0b9

Browse files
committed
asadfw
1 parent e7e4f14 commit 5b0a0b9

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

.github/workflows/promote-branch.yml

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)