-
Notifications
You must be signed in to change notification settings - Fork 1
152 lines (146 loc) · 5.4 KB
/
generate-all.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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: generate-all
on:
schedule:
- cron: '15 */4 * * *'
push:
branches:
- 'develop'
- 'feature/**'
- 'chore/**'
- 'bugfix/**'
- 'story/**'
workflow_dispatch:
jobs:
prerequisite:
name: Prerequisite for Generation
if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/feature')
runs-on: ubuntu-20.04
steps:
- name: Prerequisite
run: |
echo Prerequisites passed!
generate-bmcapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc/download_spec
package-name: pnap_bmc_api
generate-ranchersolutionapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/rancher/download_spec
package-name: pnap_rancher_solution_api
generate-networkapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/networks/download_spec
package-name: pnap_network_api
generate-ipapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/ips/download_spec
package-name: pnap_ip_api
generate-auditapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc-audit/download_spec
package-name: pnap_audit_api
generate-tagapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/tags/download_spec
package-name: pnap_tag_api
generate-networkstorageapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/network-storage/download_spec
package-name: pnap_network_storage_api
generate-locationapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc-location/download_spec
package-name: pnap_location_api
generate-invoicingapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/invoicing/download_spec
package-name: pnap_invoicing_api
generate-paymentsapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/payments/download_spec
package-name: pnap_payments_api
# Push generated code
push-changes:
name: Push Changes
runs-on: ubuntu-20.04
needs:
- generate-bmcapi
- generate-ranchersolutionapi
- generate-networkapi
- generate-ipapi
- generate-auditapi
- generate-tagapi
- generate-networkstorageapi
- generate-locationapi
- generate-invoicingapi
- generate-paymentsapi
outputs:
CHANGES_FOUND: ${{ steps.commit-step.outputs.CHANGES_FOUND }}
steps:
- name: Check out the repo
uses: actions/checkout@v3
# 2nd part of cleanup.
# Checking out the repository will include all the dirty files as well,
# so here we need to delete the existing modules and keep only the artifacts
# that were generated.
- name: Clean up modules
run: |
rm -rf ./pnap_audit_api \
./pnap_bmc_api \
./pnap_ip_api \
./pnap_location_api \
./pnap_network_api \
./pnap_network_storage_api \
./pnap_rancher_solution_api \
./pnap_tag_api \
./pnap_payment_api \
./pnap_invoice_api
- name: Download Artifacts
uses: actions/download-artifact@v3
- name: Move spec files
run: |
find . -type f -name "*.spec.yaml" -not -path "./specs/*" -print0 | xargs -0 mv -ft ./specs/
- id: commit-step
name: Add and Commit files
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add -A
# Uses git status to check whether changes are present.
if test "$(git status --porcelain=v1 2>/dev/null | wc -l)" -gt "0" ;
then
git commit -m "Add changes";
echo "CHANGES_FOUND=true" >> "$GITHUB_OUTPUT";
else
echo No changes found;
fi
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
validate-all:
if: ${{ needs.push-changes.outputs.CHANGES_FOUND }}
needs:
- push-changes
uses: ./.github/workflows/validate-all.yml