-
Notifications
You must be signed in to change notification settings - Fork 19
94 lines (85 loc) · 3.48 KB
/
add-codeowners.yml
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
87
88
89
90
91
92
93
94
name: "Add Codeowners file to Go Repositories"
on:
workflow_dispatch: {}
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
build-provider-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- id: set-matrix
run: |
provider=$(jq -rcM "{ provider: keys }" provider.json)
echo "matrix=$provider" >> $GITHUB_OUTPUT
add-codeowners-file:
needs: build-provider-matrix
name: "Add Codeowners File"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{fromJSON(needs.build-provider-matrix.outputs.matrix)}}
max-parallel: 10
steps:
- name: Checkout this repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: main
- name: Checkout cdktf-provider-${{ matrix.provider }}-go Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
repository: cdktf/cdktf-provider-${{ matrix.provider }}-go
token: ${{ secrets.GH_COMMENT_TOKEN }}
fetch-depth: 0
path: provider
- name: Set git identity
run: |-
git config user.name "team-tf-cdk"
git config user.email "[email protected]"
working-directory: ./provider
- name: Delete old branches from previous runs
run: |
git branch -r | egrep -o "add-update-codeowners-file.*" | xargs -n 1 git push origin --delete
working-directory: ./provider
continue-on-error: true
- name: Copy codeowners file to provider repo
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const {resolve} = require('path')
const scriptPath = resolve("./main/.github/lib/copy-codeowners-file")
const script = require(scriptPath)
script()
- name: Check for changes
id: git_diff
run: |
if (( $(git status -s | wc -l) > 0 )); then echo "has_changes=true" >> $GITHUB_OUTPUT; fi
working-directory: ./provider
- if: steps.git_diff.outputs.has_changes
name: Commit codeowners file and push changes
run: |
git checkout -b add-update-codeowners-file-${{ github.run_number }}-${{ github.run_attempt }}
git add .
git commit -m "Add / Update CODEOWNERS file"
git push --set-upstream origin add-update-codeowners-file-${{ github.run_number }}-${{ github.run_attempt }}
working-directory: ./provider
- if: steps.git_diff.outputs.has_changes
name: "Create PR"
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{ secrets.GH_COMMENT_TOKEN }}
retries: 5
retry-exempt-status-codes: 400,401,404
script: |
const {resolve} = require('path')
const scriptPath = resolve("./main/.github/lib/create-pr")
const script = require(scriptPath)
await script({
github,
branchName: "add-update-codeowners-file-${{ github.run_number }}-${{ github.run_attempt }}",
prTitle: "Add / Update CODEOWNERS file",
fullRepoName: "cdktf-provider-${{matrix.provider}}-go",
mergePullRequest: true
})