-
Notifications
You must be signed in to change notification settings - Fork 124
122 lines (103 loc) · 4.2 KB
/
publish.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
name: Publish
on:
push:
branches:
- master
tags:
- v[0-9]+
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
publish:
name: Publish spec to other repositories
runs-on: ubuntu-latest
steps:
# Fetch this repository
- uses: actions/checkout@v2
# Set up GO
- uses: actions/setup-go@v2
with:
go-version: 1.19
# Fetch app installation token
- uses: tibdex/[email protected]
id: gh-api-token
with:
app_id: ${{ secrets.GH_APP_STRIPE_OPENAPI_APP_ID }}
private_key: ${{ secrets.GH_APP_STRIPE_OPENAPI_PRIVATE_KEY }}
- name: Trigger generated code update
run: |
curl --fail-with-body \
-XPOST \
-H 'Authorization: token ${{ steps.gh-api-token.outputs.token }}' \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Content-Type: application/json" \
https://api.github.com/repos/stripe/sdk-codegen/actions/workflows/codegen.yml/dispatches \
--data '{"ref":"master"}'
# Fetch repositories to modify
- uses: actions/checkout@v3
with:
token: ${{ steps.gh-api-token.outputs.token }}
repository: stripe/stripe-mock
path: stripe-mock
- uses: actions/checkout@v3
with:
token: ${{ steps.gh-api-token.outputs.token }}
repository: stripe/stripe-cli
path: stripe-cli
- run: |
rm -f ./api/openapi-spec/spec3.sdk.json
cp ../openapi/spec3.sdk.json ./api/openapi-spec/spec3.sdk.json
go generate ./...
working-directory: ./stripe-cli
- run: |
rm -f ./stripe-mock/embedded/openapi/spec3.json
rm -f ./stripe-mock/embedded/openapi/spec3.beta.sdk.json
rm -f ./stripe-mock/embedded/openapi/fixtures3.json
rm -f ./stripe-mock/embedded/openapi/fixtures3.beta.json
cp openapi/spec3.json stripe-mock/embedded/openapi/spec3.json
cp openapi/spec3.beta.sdk.json stripe-mock/embedded/openapi/spec3.beta.sdk.json
cp openapi/fixtures3.json stripe-mock/embedded/openapi/fixtures3.json
cp openapi/fixtures3.beta.json stripe-mock/embedded/openapi/fixtures3.beta.json
- name: Create Pull Request on stripe-mock
id: cpr
uses: peter-evans/create-pull-request@v4
with:
path: stripe-mock
title: OpenAPI Update
body: |
Automated OpenAPI update for https://github.com/stripe/openapi/commit/${{ github.sha }}
[→ Debug this workflow](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})
branch: update-openapi
token: ${{ steps.gh-api-token.outputs.token }}
delete-branch: true
commit-message: Update OpenAPI for ${{ github.sha }}
committer: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
author: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
- uses: stripe/openapi/actions/enable-auto-merge@master
name: Enable auto-merge for stripe-mock
with:
pr_url: "${{ steps.cpr.outputs.pull-request-url }}"
github_token: ${{ steps.gh-api-token.outputs.token }}
repo: "./stripe-mock"
- name: Create pull request on stripe-cli
uses: peter-evans/create-pull-request@v4
with:
path: stripe-cli
title: OpenAPI Update
body: |
Automated OpenAPI update for https://github.com/stripe/openapi/commit/${{ github.sha }}
This pull request was initiated by @${{ github.actor }}
[→ Debug this workflow](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})
branch: update-openapi
token: ${{ steps.gh-api-token.outputs.token }}
delete-branch: true
commit-message: Update OpenAPI for ${{ github.sha }}
committer: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
author: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
- uses: ./actions/notify-slack
if: always()
with:
action: 'Publishing the OpenAPI spec to other repositories'
send_on_success: false
bot_token: ${{ secrets.SLACK_BOT_TOKEN }}