-
Notifications
You must be signed in to change notification settings - Fork 1
162 lines (161 loc) · 7.05 KB
/
news-seed-lpb.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
name: Seed all news to Lighthouse Platform Backend (LPB)
on:
workflow_dispatch:
inputs:
environment:
description: "What environment are you seeding?"
required: true
type: environment
jobs:
gather_content:
name: Gather all content
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Find files and artifact them
run: |
find ./content/website -type f > seed-files.txt
echo "All files to upload:"
cat seed-files.txt
- name: Save changed files list
uses: actions/upload-artifact@v1
with:
name: seed-files
path: seed-files.txt
send_content_to_development:
name: Send content to development Lighthouse Platform Backend (LPB)
needs: [gather_content]
environment:
name: development
url: https://dev-developer.va.gov
runs-on: ubuntu-latest
if: ${{ inputs.environment == 'development' }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: NPM install
run: npm ci
- id: get_bearer_token
name: Get Bearer Token
env:
LPB_HOST: "dev-api.va.gov"
LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }}
LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }}
OKTA_TOKEN_AUD: "https://deptva-eval.okta.com/oauth2/ausg95zxf6dFPccy02p7/v1/token"
run: echo "$LPB_RSA_TOKEN" > ./rsa.pem;
ls -la;
wc -l ./rsa.pem;
node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD;
BEARER_TOKEN=`cat ./bearer.token`;
echo "bearer_token=$BEARER_TOKEN" >> $GITHUB_ENV;
echo "::set-output name=bearer_token::$BEARER_TOKEN"
- name: Get file list
uses: actions/download-artifact@v1
with:
name: seed-files
- name: Seed content to development
env:
LPB_HOST: "dev-api.va.gov"
BEARER_TOKEN: ${{ steps.get_bearer_token.outputs.bearer_token }}
run:
for n in `cat seed-files/seed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do
echo "Posting $n to LPB";
DATE_STRING=`echo $n | 's/^.*date:\s*//'`;
TITLE_STRING=`cat $n | 's/^.*title:\s*//'`;
TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/'`;
SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`;
URL_STRING=`cat $n | 's/^.*url:\s*//'`;
echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items";
curl
--request POST
--header 'Content-Type:application/json'
--header "Authorization:Bearer ${{ env.bearer_token }}"
--data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}"
https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items;
done;
for n in `cat changed-files/changed-files.txt | grep content/website/news/releases`; do
echo "Posting $n to LPB";
DATE_STRING=`echo $n | 's/^.*date:\s*//'`;
TITLE_STRING=`cat $n | 's/^.*title:\s*//'`;
TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/'`;
URL_STRING=`cat $n | 's/^.*url:\s*//'`;
echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items";
curl
--request POST
--header 'Content-Type:application/json'
--header "Authorization:Bearer ${{ env.bearer_token }}"
--data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}"
https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items;
done;
send_content_to_production:
name: Send content to production Lighthouse Platform Backend (LPB)
needs: [gather_content]
environment:
name: production
url: https://developer.va.gov
runs-on: ubuntu-latest
if: ${{ inputs.environment == 'production' }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: NPM install
run: npm ci
- id: get_bearer_token
name: Get Bearer Token
env:
LPB_HOST: "api.va.gov"
LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }}
LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }}
OKTA_TOKEN_AUD: "https://va.okta.com/oauth2/ausdppulkgBFJDZZe297/v1/token"
run: echo "$LPB_RSA_TOKEN" > ./rsa.pem;
ls -la;
wc -l ./rsa.pem;
node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD;
BEARER_TOKEN=`cat ./bearer.token`;
echo "bearer_token=$BEARER_TOKEN" >> $GITHUB_ENV;
echo "::set-output name=bearer_token::$BEARER_TOKEN"
- name: Get file list
uses: actions/download-artifact@v1
with:
name: seed-files
- name: Seed content to production
env:
LPB_HOST: "api.va.gov"
BEARER_TOKEN: ${{ steps.get_bearer_token.outputs.bearer_token }}
run:
for n in `cat seed-files/seed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do
echo "Posting $n to LPB";
DATE_STRING=`echo $n | 's/^.*date:\s*//'`;
TITLE_STRING=`cat $n | 's/^.*title:\s*//'`;
TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/'`;
SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`;
URL_STRING=`cat $n | 's/^.*url:\s*//'`;
echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items";
curl
--request POST
--header 'Content-Type:application/json'
--header "Authorization:Bearer ${{ env.bearer_token }}"
--data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}"
https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items;
done;
for n in `cat changed-files/changed-files.txt | grep content/website/news/releases`; do
echo "Posting $n to LPB";
DATE_STRING=`echo $n | 's/^.*date:\s*//'`;
TITLE_STRING=`cat $n | 's/^.*title:\s*//'`;
TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/'`;
URL_STRING=`cat $n | 's/^.*url:\s*//'`;
echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items";
curl
--request POST
--header 'Content-Type:application/json'
--header "Authorization:Bearer ${{ env.bearer_token }}"
--data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}"
https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items;
done;