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