1
+ name : AWS SAM
2
+
3
+ on :
4
+ push :
5
+ paths-ignore :
6
+ - ' **.md'
7
+ pull_request :
8
+ types :
9
+ - opened
10
+ - synchronize
11
+ paths-ignore :
12
+ - ' **.md'
13
+
14
+ env :
15
+ SAM_CLI_TELEMETRY : 0
16
+
17
+ jobs :
18
+ build :
19
+ name : Build
20
+ runs-on : ubuntu-latest
21
+ steps :
22
+ - uses : actions/checkout@v2
23
+ - name : Configure AWS credentials
24
+ id : creds
25
+ uses : aws-actions/configure-aws-credentials@v1
26
+ with :
27
+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
28
+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
29
+ aws-region : ${{ secrets.AWS_REGION }}
30
+ - name : Setup Ruby
31
+ uses : ruby/setup-ruby@v1
32
+ with :
33
+ bundler-cache : true
34
+ - name : SAM Validate
35
+ run : |
36
+ sam validate
37
+ - name : Run Tests
38
+ run : |
39
+ bundle exec rake test
40
+ - name : SAM Build
41
+ run : |
42
+ sam build
43
+ - name : Package SAM Build
44
+ run : |
45
+ tar -cvf sam-build.tar .aws-sam
46
+ - name : Upload SAM Build
47
+ uses : actions/upload-artifact@v2
48
+ with :
49
+ name : sam-build
50
+ retention-days : 7
51
+ path : sam-build.tar
52
+
53
+ deployStaging :
54
+ name : Deploy to Staging
55
+ runs-on : ubuntu-latest
56
+ needs : build
57
+ environment :
58
+ name : Staging
59
+ steps :
60
+ - uses : actions/checkout@v2
61
+ - name : Configure AWS credentials
62
+ id : creds
63
+ uses : aws-actions/configure-aws-credentials@v1
64
+ with :
65
+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
66
+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
67
+ aws-region : ${{ secrets.AWS_REGION }}
68
+ - uses : actions/download-artifact@v2
69
+ with :
70
+ name : sam-build
71
+ - name : Unpack SAM Build
72
+ run : tar -xvf sam-build.tar
73
+ - name : SAM Deploy
74
+ run : |
75
+ sam deploy --region ${{ secrets.AWS_REGION }} --stack-name ${{ secrets.AWS_STACK_NAME }} --capabilities CAPABILITY_NAMED_IAM --s3-bucket ${{ secrets.AWS_S3_BUCKET }} --role-arn ${{ secrets.AWS_ROLE_ARN }} --s3-prefix ${{ secrets.AWS_S3_PREFIX }} --no-confirm-changeset --tags "environment=staging"
76
+
77
+ deployProduction :
78
+ name : Deploy to Production
79
+ runs-on : ubuntu-latest
80
+ needs : deployStaging
81
+ environment :
82
+ name : Production
83
+ steps :
84
+ - uses : actions/checkout@v2
85
+ - name : Configure AWS credentials
86
+ id : creds
87
+ uses : aws-actions/configure-aws-credentials@v1
88
+ with :
89
+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
90
+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
91
+ aws-region : ${{ secrets.AWS_REGION }}
92
+ - uses : actions/download-artifact@v2
93
+ with :
94
+ name : sam-build
95
+ - name : Unpack SAM Build
96
+ run : tar -xvf sam-build.tar
97
+ - name : SAM Deploy
98
+ run : |
99
+ sam deploy --region ${{ secrets.AWS_REGION }} --stack-name ${{ secrets.AWS_STACK_NAME }} --capabilities CAPABILITY_NAMED_IAM --s3-bucket ${{ secrets.AWS_S3_BUCKET }} --role-arn ${{ secrets.AWS_ROLE_ARN }} --s3-prefix ${{ secrets.AWS_S3_PREFIX }} --no-confirm-changeset --tags "environment=production"
0 commit comments