Skip to content

Commit a82262d

Browse files
committed
Deployment workflow
1 parent 39e387c commit a82262d

File tree

3 files changed

+65
-22
lines changed

3 files changed

+65
-22
lines changed

.deploy/lambda/lib/JProfByBotStack.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,9 @@ export class JProfByBotStack extends cdk.Stack {
3535
api.root
3636
.addResource(props.telegramToken.replace(':', '_'))
3737
.addMethod('POST', new apigateway.LambdaIntegration(lambdaWebhook));
38+
39+
new cdk.CfnOutput(this, 'URL', {
40+
value: api.deploymentStage.urlForPath()
41+
});
3842
}
3943
}

.github/workflows/default.yml

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@ jobs:
1111
runs-on: ubuntu-20.04
1212
steps:
1313
- uses: actions/checkout@v2
14-
- uses: actions/setup-java@v1
14+
- uses: actions/setup-java@v2
1515
with:
1616
java-version: 11
17-
- uses: actions/cache@v2
17+
distribution: adopt
18+
- uses: burrunan/gradle-cache-action@v1
1819
with:
19-
path: |
20-
~/.gradle/caches
21-
~/.gradle/wrapper
22-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
23-
restore-keys: |
24-
${{ runner.os }}-gradle-
20+
job-id: test
21+
read-only: ${{ github.ref != 'refs/heads/master' }}
2522
- run: ./gradlew clean test
2623
- uses: actions/upload-artifact@v2
2724
if: always()
@@ -30,9 +27,7 @@ jobs:
3027
path: |
3128
**/build/test-results
3229
**/build/reports
33-
- run: |
34-
rm -f ~/.gradle/caches/modules-2/modules-2.lock
35-
rm -f ~/.gradle/caches/modules-2/gc.properties
30+
3631
db-test:
3732
name: DB test
3833
runs-on: ubuntu-20.04
@@ -51,17 +46,14 @@ jobs:
5146
AWS_SECRET_ACCESS_KEY: secretKey
5247
steps:
5348
- uses: actions/checkout@v2
54-
- uses: actions/setup-java@v1
49+
- uses: actions/setup-java@v2
5550
with:
5651
java-version: 11
57-
- uses: actions/cache@v2
52+
distribution: adopt
53+
- uses: burrunan/gradle-cache-action@v1
5854
with:
59-
path: |
60-
~/.gradle/caches
61-
~/.gradle/wrapper
62-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
63-
restore-keys: |
64-
${{ runner.os }}-gradle-
55+
job-id: db-test
56+
read-only: ${{ github.ref != 'refs/heads/master' }}
6557
- run: votes/dynamodb/src/test/resources/seed.sh
6658
- run: ./gradlew clean dbTest
6759
- uses: actions/upload-artifact@v2
@@ -71,9 +63,7 @@ jobs:
7163
path: |
7264
**/build/test-results
7365
**/build/reports
74-
- run: |
75-
rm -f ~/.gradle/caches/modules-2/modules-2.lock
76-
rm -f ~/.gradle/caches/modules-2/gc.properties
66+
7767
test-publish:
7868
name: Publish test results
7969
runs-on: ubuntu-20.04

.github/workflows/deploy.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Deploy
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
workflow_dispatch:
8+
9+
jobs:
10+
deploy:
11+
name: Deploy
12+
runs-on: ubuntu-20.04
13+
environment:
14+
name: production
15+
url: ${{ steps.URL.outputs.URL }}
16+
steps:
17+
- uses: actions/checkout@v2
18+
19+
- uses: actions/setup-java@v2
20+
with:
21+
java-version: 11
22+
distribution: adopt
23+
- uses: burrunan/gradle-cache-action@v1
24+
with:
25+
job-id: deploy
26+
read-only: ${{ github.ref != 'refs/heads/master' }}
27+
- run: ./gradlew clean shadowJar
28+
- uses: actions/upload-artifact@v2
29+
if: always()
30+
with:
31+
name: test-results
32+
path: |
33+
**/build/test-results
34+
**/build/reports
35+
36+
- run: npm install
37+
working-directory: .deploy/lambda
38+
- uses: aws-actions/configure-aws-credentials@v1
39+
with:
40+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
41+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
42+
aws-region: eu-west-2
43+
- run: npx cdk deploy -O cdk.out/outputs.json
44+
working-directory: .deploy/lambda
45+
env:
46+
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
47+
- id: URL
48+
run: echo "::set-output name=URL::$(jq -r '.JProfByBotStack.URL' cdk.out/outputs.json)"
49+
working-directory: .deploy/lambda

0 commit comments

Comments
 (0)