Skip to content

Commit 0457001

Browse files
committed
feat(spinnaker) add github actions workflow for terraform and docs artifact.
1 parent 90169ad commit 0457001

1 file changed

Lines changed: 122 additions & 0 deletions

File tree

.github/workflows/spinnaker.yml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
######################################################################
2+
# Workflow that zip, uploads artifact and notify SNS to start pipeline.
3+
######################################################################
4+
name: 'Spinnaker'
5+
on:
6+
push:
7+
branches:
8+
- master
9+
paths:
10+
- '.github/workflows/spinnaker.yml'
11+
- 'apps/spinnaker/**'
12+
13+
jobs:
14+
docker:
15+
defaults:
16+
run:
17+
working-directory: ./apps/spinnaker
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v2
22+
- name: Set outputs
23+
id: vars
24+
shell: bash
25+
run: |
26+
echo "::set-output name=application::spinnaker"
27+
echo "::set-output name=branch::$(echo ${GITHUB_REF#refs/heads/})"
28+
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
29+
30+
- name: Configure AWS Credentials
31+
uses: aws-actions/configure-aws-credentials@v1
32+
with:
33+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
34+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
35+
aws-region: ${{ secrets.AWS_REGION }}
36+
37+
- name: Zip And Upload Folder
38+
id: zip_and_upload
39+
40+
shell: bash
41+
run: |
42+
ARTIFACT_FILENAME=${{ steps.vars.outputs.application }}-${{ steps.vars.outputs.branch }}-${{ steps.vars.outputs.sha_short }}.zip
43+
S3_FILENAME=s3://${{ secrets.AWS_BUCKET }}/$ARTIFACT_FILENAME
44+
45+
zip -r $ARTIFACT_FILENAME terraform
46+
aws s3 cp $ARTIFACT_FILENAME $S3_FILENAME
47+
echo "::set-output name=s3_filename::$S3_FILENAME"
48+
echo "::set-output name=artifact_filename::$ARTIFACT_FILENAME"
49+
50+
- name: Uploaded file
51+
run: |
52+
echo ${{ steps.zip_and_upload.outputs.s3_filename }}
53+
echo ${{ steps.zip_and_upload.outputs.artifact_filename }}
54+
55+
- name: Publish SNS Topic
56+
uses: nothingalike/sns-publish-topic@v1.6
57+
with:
58+
TOPIC_ARN: ${{ secrets.TOPIC_ARN }}
59+
MESSAGE: |
60+
{
61+
"reference":"${{ steps.zip_and_upload.outputs.s3_filename }}",
62+
"name": "${{ steps.vars.outputs.application }}",
63+
"commit": "${{ steps.vars.outputs.sha_short }}",
64+
"branch": "${{ steps.vars.outputs.branch }}",
65+
}
66+
67+
docs:
68+
defaults:
69+
run:
70+
working-directory: ./apps/spinnaker/docs
71+
runs-on: ubuntu-18.04
72+
steps:
73+
- uses: actions/checkout@v2
74+
75+
- name: Set outputs
76+
id: vars
77+
shell: bash
78+
run: |
79+
echo "::set-output name=application::spinnaker"
80+
echo "::set-output name=branch::$(echo ${GITHUB_REF#refs/heads/})"
81+
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
82+
83+
- name: Setup Python
84+
uses: actions/setup-python@v2
85+
with:
86+
python-version: '3.8'
87+
88+
- name: Upgrade pip
89+
run: |
90+
# install pip=>20.1 to use "pip cache dir"
91+
python3 -m pip install --upgrade pip
92+
93+
- name: Get pip cache dir
94+
id: pip-cache
95+
run: echo "::set-output name=dir::$(pip cache dir)"
96+
97+
- name: Cache dependencies
98+
uses: actions/cache@v2
99+
with:
100+
path: ${{ steps.pip-cache.outputs.dir }}
101+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
102+
restore-keys: |
103+
${{ runner.os }}-pip-
104+
105+
- name: Generate documentation.
106+
shell: bash
107+
run: pip install -r requirements.txt && make html
108+
109+
- name: Configure AWS Credentials
110+
uses: aws-actions/configure-aws-credentials@v1
111+
with:
112+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
113+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
114+
aws-region: ${{ secrets.AWS_REGION }}
115+
116+
- name: Sync documentation.
117+
shell: bash
118+
run: |
119+
aws s3 sync ./build/html \
120+
s3://198596758466-docs/${{ steps.vars.outputs.application }}/${{ steps.vars.outputs.branch }} \
121+
--acl public-read \
122+
--delete

0 commit comments

Comments
 (0)