-
Notifications
You must be signed in to change notification settings - Fork 20
86 lines (79 loc) · 4.03 KB
/
kommander-branch.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
name: "Create Kommander Branch"
on:
pull_request:
types: [opened, reopened, synchronize, labeled, unlabeled]
workflow_dispatch: {}
permissions:
pull-requests: write
contents: write
jobs:
get-kapps-branch-name:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'open-kommander-pr')
outputs:
branch_name: ${{ steps.branch-name.outputs.branch_name }}
escaped_branch_name: ${{ steps.escaped-branch-name.outputs.escaped_branch_name }}
base_branch_name: ${{ steps.base-branch-name.outputs.base_branch_name }}
steps:
- id: branch-name
run: echo "branch_name=${{ github.head_ref }}" >> $GITHUB_OUTPUT
- id: escaped-branch-name
run: echo "escaped_branch_name=$(echo ${{ github.head_ref }} | sed -e 's/\//\\\//g')" >> $GITHUB_OUTPUT
- id: base-branch-name
run: echo "base_branch_name=${{ github.base_ref }}" >> $GITHUB_OUTPUT
- name: Check output branch-name
run: echo ${{ steps.branch-name.outputs.branch_name }}
- name: Check output escaped-branch-name
run: echo ${{ steps.escaped-branch-name.outputs.escaped_branch_name }}
- name: Check output base-branch-name
run: echo ${{ steps.base-branch-name.outputs.base_branch_name }}
create-kommander-branch:
runs-on: ubuntu-latest
needs: get-kapps-branch-name
if: contains(github.event.pull_request.labels.*.name, 'open-kommander-pr')
steps:
- uses: actions/checkout@v3
with:
repository: 'mesosphere/kommander'
ssh-key: ${{ secrets.KOMM_PRIVATE_SSH_KEY }}
path: 'kommander'
fetch-depth: '0'
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v4
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
git_tag_gpgsign: true
workdir: 'kommander'
- name: Update kommander-applications ref on new branch
id: update-ref
run: |
cd kommander
git config user.name d2iq-mergebot
git config user.email ci-mergebot@d2iq.com
git config user.signingKey ${{ secrets.GPG_KEY_ID }}
# Use same base as k-apps (main or release branch)
git checkout ${{ needs.get-kapps-branch-name.outputs.base_branch_name }}
# If branch already exists, do nothing
git show-ref --quiet --verify -- refs/remotes/origin/kapps/${{ needs.get-kapps-branch-name.outputs.base_branch_name }}/${{ needs.get-kapps-branch-name.outputs.branch_name }} || {
git checkout -b kapps/${{ needs.get-kapps-branch-name.outputs.base_branch_name }}/${{ needs.get-kapps-branch-name.outputs.branch_name }}
# Point the kommander-applications ref to the k-apps branch
sed -i 's/KOMMANDER_APPLICATIONS_REF ?= ${{ needs.get-kapps-branch-name.outputs.base_branch_name }}/KOMMANDER_APPLICATIONS_REF ?= ${{ needs.get-kapps-branch-name.outputs.escaped_branch_name }}/' Makefile
git add Makefile
if output=$(git status --porcelain) && [ ! -z "$output" ]; then
git commit -v -m "build: Update kommander-applications ref for testing"
git push --force-with-lease --set-upstream origin kapps/${{ needs.get-kapps-branch-name.outputs.base_branch_name }}/${{ needs.get-kapps-branch-name.outputs.branch_name }}
echo "created_new_branch=true" >> $GITHUB_OUTPUT
fi
}
- name: Create comment
if: steps.update-ref.outputs.created_new_branch == 'true'
uses: peter-evans/create-or-update-comment@v2
env:
GH_TOKEN: ${{ secrets.MERGEBOT_TOKEN }}
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
✅ Created Kommander branch to test kommander-applications changes: https://github.com/mesosphere/kommander/tree/kapps/${{ needs.get-kapps-branch-name.outputs.base_branch_name }}/${{ needs.get-kapps-branch-name.outputs.branch_name }}