-
Notifications
You must be signed in to change notification settings - Fork 8
138 lines (122 loc) · 4.92 KB
/
auto-repo-create.yaml
File metadata and controls
138 lines (122 loc) · 4.92 KB
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Process issue
on:
issues:
types:
- labeled
- unlabeled
issue_comment:
types:
- created
- edited
- deleted
jobs:
extract-values:
if: ${{ github.event.issue.state == 'open' && contains( github.event.issue.labels.*.name, 'new_module') && !contains( github.event.issue.labels.*.name, 'repo_created') }}
runs-on: ubuntu-latest
steps:
- id: variables
name: Extract info from issue
uses: cloud-native-toolkit/action-repo-issue-extractor@main
with:
token: ${{ secrets.GIT_ADMIN_TOKEN }}
outputs:
type: ${{ steps.variables.outputs.type }}
name: ${{ steps.variables.outputs.name }}
displayName: ${{ steps.variables.outputs.displayName }}
provider: ${{ steps.variables.outputs.provider }}
softwareProvider: ${{ steps.variables.outputs.softwareProvider }}
group: ${{ steps.variables.outputs.group }}
category: ${{ steps.variables.outputs.category }}
approved: ${{ steps.variables.outputs.approved }}
requester: ${{ steps.variables.outputs.requester }}
issue_number: ${{ steps.variables.outputs.issue_number }}
new_module: ${{ steps.variables.outputs.new_module }}
error-extract-values:
runs-on: ubuntu-latest
needs: extract-values
if: always() && needs.extract-values.result == 'failure'
steps:
- name: Add comment
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.issue.number }}
body: "Error extracting values. See details at: https://github.com/cloud-native-toolkit/automation-modules/actions/runs/${{ github.run_id }}"
create-repo:
runs-on: ubuntu-latest
needs: extract-values
if: ${{ needs.extract-values.outputs.approved == 'true' && needs.extract-values.outputs.new_module == 'true' }}
steps:
- id: create
name: Create repo
uses: cloud-native-toolkit/action-module-create@main
with:
token: ${{ secrets.GIT_ADMIN_TOKEN }}
type: ${{ needs.extract-values.outputs.type }}
name: ${{ needs.extract-values.outputs.name }}
displayName: ${{ needs.extract-values.outputs.displayName }}
provider: ${{ needs.extract-values.outputs.provider }}
softwareProvider: ${{ needs.extract-values.outputs.softwareProvider }}
strict: true
outputs:
repoUrl: ${{ steps.create.outputs.repo_url }}
issue_number: ${{ needs.extract-values.outputs.issue_number }}
owner: ${{ steps.create.outputs.owner }}
repo: ${{ steps.create.outputs.repo }}
moduleName: ${{ steps.create.outputs.moduleName }}
displayName: ${{ steps.create.outputs.displayName }}
cloudProvider: ${{ steps.create.outputs.cloudProvider }}
softwareProvider: ${{ steps.create.outputs.softwareProvider }}
group: ${{ needs.extract-values.outputs.group }}
category: ${{ needs.extract-values.outputs.category }}
error-create-repo:
runs-on: ubuntu-latest
needs: create-repo
if: always() && needs.create-repo.result == 'failure'
steps:
- name: Add comment
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.issue.number }}
body: "Error creating repo. See details at: https://github.com/cloud-native-toolkit/automation-modules/actions/runs/${{ github.run_id }}"
label_issues:
runs-on: ubuntu-latest
needs: create-repo
steps:
- name: Label issue
uses: andymckay/labeler@master
with:
add-labels: "repo_created"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Add comment
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.issue.number }}
body: Created repo - ${{ needs.create-repo.outputs.repoUrl }}
add-to-catalog:
runs-on: ubuntu-latest
needs: create-repo
steps:
- uses: actions/checkout@v2
- name: Update catalog module
uses: cloud-native-toolkit/action-add-to-catalog@main
with:
repoUrl: ${{ needs.create-repo.outputs.repoUrl }}
category: ${{ needs.create-repo.outputs.category }}
name: ${{ needs.create-repo.outputs.moduleName }}
displayName: ${{ needs.create-repo.outputs.displayName }}
group: ${{ needs.create-repo.outputs.group }}
cloudProvider: ${{ needs.create-repo.outputs.cloudProvider }}
softwareProvider: ${{ needs.create-repo.outputs.softwareProvider }}
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
author_name: Cloud-Native Toolkit
author_email: cloud-native-toolkit@ibm.com
message: 'Adds entry to module catalog'
add: 'catalog.yaml'
pull_strategy: 'NO-PULL'
- name: Label issue
uses: andymckay/labeler@master
with:
add-labels: "added_to_catalog"
repo-token: ${{ secrets.GITHUB_TOKEN }}