-
Notifications
You must be signed in to change notification settings - Fork 1
185 lines (181 loc) · 9.34 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
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
###################################################################
# Auto-created by the cicd-actions tool
on: workflow_dispatch
name: Publish All Artifacts
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Upgrade aws-cli
run: >
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o
"awscliv2.zip"
unzip awscliv2.zip >/dev/null
sudo ./aws/install --update
/usr/local/bin/aws --version
aws --version
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 14.17.2
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.OS }}-node
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache yarn modules
uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Version
id: package-versions
run: ./tool/cicd/actions/scripts/export_versions.sh
- name: Discovered versions
run: >
echo "Versions: function_api/${{env.VERSION_FUNCTION_API}}
fuse-cli/${{env.VERSION_FUSEBIT_CLI}}
fuse-ops/${{env.VERSION_FUSEBIT_OPS_CLI}}"
- name: Setup Environments and Profiles
env:
SECRET_FUSEBIT_PROFILE: ${{secrets.FUSEBIT_STAGE_US_WEST_2}}
SECRET_NPM_TOKEN: ${{secrets.NPM_PUBLISH_TOKEN}}
SECRET_GC_BQ_KEY_BASE64: ${{secrets.FUSEBIT_GC_BQ_KEY_BASE64}}
run: ./tool/cicd/actions/scripts/create_env_files.sh
- name: Qualify - aws-cli works
run: aws s3 ls
- name: Qualify - npm works
run: npm whoami
- name: Pre-Build Summary
run: |
echo function-api: ${VERSION_FUNCTION_API}
echo fusebit-cli: ${VERSION_FUSEBIT_CLI}
echo fusebit-ops-cli: ${VERSION_FUSEBIT_OPS_CLI}
- name: Build
run: ./tool/cicd/actions/scripts/build_tree.sh
- name: Qualify - fuse-ops works
run: node cli/fusebit-ops-cli/libc/index.js stack ls
- name: Qualify - fuse works
env:
FUSE_PROFILE_INTERNAL_321_US_WEST_2_STAGE: ${{ secrets.FUSE_PROFILE_INTERNAL_321_US_WEST_2_STAGE }}
run: ./tool/cicd/actions/scripts/test_fuse.sh
- name: Yarn - image
run: ./tool/cicd/actions/scripts/build_image.sh
- name: Publish - function-api
run: ./tool/cicd/actions/scripts/publish_function_api.sh
- name: Publish - fusebit-cli
run: ./tool/cicd/actions/scripts/publish_fusebit_cli.sh
- name: Publish - everyauth-cli
run: ./tool/cicd/actions/scripts/publish_everyauth_cli.sh
- name: Publish - fusebit-ops-cli
run: ./tool/cicd/actions/scripts/publish_fusebit_ops_cli.sh
- name: Publish - fusebit-schema
run: ./tool/cicd/actions/scripts/publish_fusebit_schema.sh
- name: Publish - API Docs
run: ./tool/cicd/actions/scripts/publish_api_docs.sh
- name: Publish - Global Proxy Secrets
env:
PROXY_CALENDLY_CLIENT_ID: ${{ secrets.PROXY_CALENDLY_CLIENT_ID }}
PROXY_CALENDLY_CLIENT_SECRET: ${{ secrets.PROXY_CALENDLY_CLIENT_SECRET }}
PROXY_DRIFT_CLIENT_ID: ${{ secrets.PROXY_DRIFT_CLIENT_ID }}
PROXY_DRIFT_CLIENT_SECRET: ${{ secrets.PROXY_DRIFT_CLIENT_SECRET }}
PROXY_CLICKUP_CLIENT_ID: ${{ secrets.PROXY_CLICKUP_CLIENT_ID }}
PROXY_CLICKUP_CLIENT_SECRET: ${{ secrets.PROXY_CLICKUP_CLIENT_SECRET }}
PROXY_MICROSOFTGRAPH_CLIENT_ID: ${{ secrets.PROXY_MICROSOFTGRAPH_CLIENT_ID }}
PROXY_MICROSOFTGRAPH_CLIENT_SECRET: ${{ secrets.PROXY_MICROSOFTGRAPH_CLIENT_SECRET }}
PROXY_MICROSOFTDYNAMICS_CLIENT_ID: ${{ secrets.PROXY_MICROSOFTDYNAMICS_CLIENT_ID }}
PROXY_MICROSOFTDYNAMICS_CLIENT_SECRET: ${{ secrets.PROXY_MICROSOFTDYNAMICS_CLIENT_SECRET }}
PROXY_PROCORE_CLIENT_ID: ${{ secrets.PROXY_PROCORE_CLIENT_ID }}
PROXY_PROCORE_CLIENT_SECRET: ${{ secrets.PROXY_PROCORE_CLIENT_SECRET }}
PROXY_CONSTANTCONTACT_CLIENT_ID: ${{ secrets.PROXY_CONSTANTCONTACT_CLIENT_ID }}
PROXY_CONSTANTCONTACT_CLIENT_SECRET: ${{ secrets.PROXY_CONSTANTCONTACT_CLIENT_SECRET }}
PROXY_OUTREACH_CLIENT_ID: ${{ secrets.PROXY_OUTREACH_CLIENT_ID }}
PROXY_OUTREACH_CLIENT_SECRET: ${{ secrets.PROXY_OUTREACH_CLIENT_SECRET }}
PROXY_MAILCHIMP_CLIENT_ID: ${{ secrets.PROXY_MAILCHIMP_CLIENT_ID }}
PROXY_MAILCHIMP_CLIENT_SECRET: ${{ secrets.PROXY_MAILCHIMP_CLIENT_SECRET }}
PROXY_GITLAB_CLIENT_ID: ${{ secrets.PROXY_GITLAB_CLIENT_ID }}
PROXY_GITLAB_CLIENT_SECRET: ${{ secrets.PROXY_GITLAB_CLIENT_SECRET }}
SLACK_PROXY_CLIENT_ID: ${{ secrets.SLACK_PROXY_CLIENT_ID }}
SLACK_PROXY_CLIENT_SECRET: ${{ secrets.SLACK_PROXY_CLIENT_SECRET }}
HUBSPOT_PROXY_CLIENT_ID: ${{ secrets.HUBSPOT_PROXY_CLIENT_ID }}
HUBSPOT_PROXY_CLIENT_SECRET: ${{ secrets.HUBSPOT_PROXY_CLIENT_SECRET }}
SFDC_PROXY_CLIENT_ID: ${{ secrets.SFDC_PROXY_CLIENT_ID }}
SFDC_PROXY_CLIENT_SECRET: ${{ secrets.SFDC_PROXY_CLIENT_SECRET }}
PROXY_LINEAR_CLIENT_ID: ${{ secrets.PROXY_LINEAR_CLIENT_ID }}
PROXY_LINEAR_CLIENT_SECRET: ${{ secrets.PROXY_LINEAR_CLIENT_SECRET }}
PROXY_GITHUB_OAUTH_CLIENT_ID: ${{ secrets.PROXY_GITHUB_OAUTH_CLIENT_ID }}
PROXY_GITHUB_OAUTH_CLIENT_SECRET: ${{ secrets.PROXY_GITHUB_OAUTH_CLIENT_SECRET }}
PROXY_GITHUB_APP_CLIENT_ID: ${{ secrets.PROXY_GITHUB_APP_CLIENT_ID }}
PROXY_GITHUB_APP_CLIENT_SECRET: ${{ secrets.PROXY_GITHUB_APP_CLIENT_SECRET }}
PROXY_ATLASSIAN_CLIENT_ID: ${{ secrets.PROXY_ATLASSIAN_CLIENT_ID }}
PROXY_ATLASSIAN_CLIENT_SECRET: ${{ secrets.PROXY_ATLASSIAN_CLIENT_SECRET }}
PROXY_PAGERDUTY_CLIENT_ID: ${{ secrets.PROXY_PAGERDUTY_CLIENT_ID }}
PROXY_PAGERDUTY_CLIENT_SECRET: ${{ secrets.PROXY_PAGERDUTY_CLIENT_SECRET }}
PROXY_ASANA_CLIENT_ID: ${{ secrets.PROXY_ASANA_CLIENT_ID }}
PROXY_ASANA_CLIENT_SECRET: ${{ secrets.PROXY_ASANA_CLIENT_SECRET }}
PROXY_REDDIT_CLIENT_ID: ${{ secrets.PROXY_REDDIT_CLIENT_ID }}
PROXY_REDDIT_CLIENT_SECRET: ${{ secrets.PROXY_REDDIT_CLIENT_SECRET }}
PROXY_DISCORD_CLIENT_ID: ${{ secrets.PROXY_DISCORD_CLIENT_ID }}
PROXY_DISCORD_CLIENT_SECRET: ${{ secrets.PROXY_DISCORD_CLIENT_SECRET }}
PROXY_ZOOM_CLIENT_ID: ${{ secrets.PROXY_ZOOM_CLIENT_ID }}
PROXY_ZOOM_CLIENT_SECRET: ${{ secrets.PROXY_ZOOM_CLIENT_SECRET }}
PROXY_STACKOVERFLOW_CLIENT_ID: ${{ secrets.PROXY_STACKOVERFLOW_CLIENT_ID }}
PROXY_STACKOVERFLOW_CLIENT_SECRET: ${{ secrets.PROXY_STACKOVERFLOW_CLIENT_SECRET }}
PROXY_STACKOVERFLOW_CLIENT_KEY: ${{ secrets.PROXY_STACKOVERFLOW_CLIENT_KEY }}
PROXY_GOOGLE_CLIENT_ID: ${{ secrets.PROXY_GOOGLE_CLIENT_ID }}
PROXY_GOOGLE_CLIENT_SECRET: ${{ secrets.PROXY_GOOGLE_CLIENT_SECRET }}
PROXY_QUICKBOOKS_CLIENT_ID: ${{ secrets.PROXY_QUICKBOOKS_CLIENT_ID }}
PROXY_QUICKBOOKS_CLIENT_SECRET: ${{ secrets.PROXY_QUICKBOOKS_CLIENT_SECRET }}
PROXY_LINKEDIN_CLIENT_ID: ${{ secrets.PROXY_LINKEDIN_CLIENT_ID }}
PROXY_LINKEDIN_CLIENT_SECRET: ${{ secrets.PROXY_LINKEDIN_CLIENT_SECRET }}
PROXY_TWITTER_CLIENT_ID: ${{ secrets.PROXY_TWITTER_CLIENT_ID }}
PROXY_TWITTER_CLIENT_SECRET: ${{ secrets.PROXY_TWITTER_CLIENT_SECRET }}
PROXY_AWS_ACCESS_KEY_ID: ${{ secrets.PROXY_AWS_ACCESS_KEY_ID }}
PROXY_AWS_SECRET_ACCESS_KEY: ${{ secrets.PROXY_AWS_SECRET_ACCESS_KEY }}
FUSE_PROFILE_INTERNAL_321_US_WEST_2_STAGE: ${{ secrets.FUSE_PROFILE_INTERNAL_321_US_WEST_2_STAGE }}
FUSE_PROFILE_INTERNAL_763_US_WEST_1_API: ${{ secrets.FUSE_PROFILE_INTERNAL_763_US_WEST_1_API }}
PROXY_SECRET_PUBLISH_PROFILE_LIST: >-
FUSE_PROFILE_INTERNAL_321_US_WEST_2_STAGE
FUSE_PROFILE_INTERNAL_763_US_WEST_1_API
run: ./tool/cicd/actions/scripts/publish_proxy_secrets.sh
- name: Publish the OpenAPI docs for v1 to Readme.Com
uses: readmeio/[email protected]
with:
rdme: >-
openapi ./api/function-api/api_v1.yaml --key=${{
secrets.README_COM_API_KEY }} --id=${{ secrets.README_COM_V1_ID }}
- name: Publish the OpenAPI docs for v2 to Readme.Com
uses: readmeio/[email protected]
with:
rdme: >-
openapi ./api/function-api/api_v2.yaml --key=${{
secrets.README_COM_API_KEY }} --id=${{ secrets.README_COM_V2_ID }}
- name: Notify slack success
if: success()
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_NOTIFICATIONS_BOT_TOKEN }}
uses: voxmedia/github-action-slack-notify-build@v1
with:
channel: pr-review
status: SUCCESS
color: good
- name: Notify slack fail
if: failure()
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_NOTIFICATIONS_BOT_TOKEN }}
uses: voxmedia/github-action-slack-notify-build@v1
with:
channel: pr-review
status: FAILED
color: danger