Skip to content

Commit 7488f96

Browse files
authored
Merge pull request #113 from silinternational/feature/gh-environments
use GitHub Actions environments
2 parents 184e13f + 926684a commit 7488f96

File tree

6 files changed

+38
-144
lines changed

6 files changed

+38
-144
lines changed

.github/workflows/test-deploy-publish.yml

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,44 @@ jobs:
1616
name: Tests
1717
runs-on: ubuntu-latest
1818
env:
19-
AWS_REGION: ${{ vars.AWS_REGION }}
20-
STG_AWS_ACCESS_KEY_ID: ${{ vars.STG_AWS_ACCESS_KEY_ID }}
21-
STG_AWS_SECRET_ACCESS_KEY: ${{ secrets.STG_AWS_SECRET_ACCESS_KEY }}
22-
PRD_AWS_ACCESS_KEY_ID: ${{ vars.PRD_AWS_ACCESS_KEY_ID }}
23-
PRD_AWS_SECRET_ACCESS_KEY: ${{ secrets.PRD_AWS_SECRET_ACCESS_KEY }}
19+
AWS_REGION: us-east-1
20+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
21+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
2422
steps:
2523
- name: Checkout code
2624
uses: actions/checkout@v4
25+
2726
- name: Test
28-
run: docker compose -f actions-services.yml run --rm test ./scripts/test.sh
27+
run: docker compose run app go test ./...
2928

3029
lint:
3130
name: Lint and Vulnerability Scan
3231
runs-on: ubuntu-latest
3332
timeout-minutes: ${{ fromJSON(vars.DEFAULT_JOB_TIMEOUT_MINUTES) }}
3433
steps:
35-
- uses: actions/checkout@v4
36-
- uses: actions/setup-go@v5
37-
with:
38-
go-version-file: 'go.mod'
39-
check-latest: true
40-
- name: golangci-lint
41-
uses: golangci/golangci-lint-action@v6
42-
with:
43-
version: latest
44-
- name: govulncheck
45-
run: |
46-
go install golang.org/x/vuln/cmd/govulncheck@latest
47-
govulncheck ./...
34+
- name: Checkout code
35+
uses: actions/checkout@v4
36+
37+
- uses: actions/setup-go@v5
38+
with:
39+
go-version-file: 'go.mod'
40+
check-latest: true
41+
42+
- name: golangci-lint
43+
uses: golangci/golangci-lint-action@v6
44+
with:
45+
version: latest
46+
47+
- name: govulncheck
48+
run: |
49+
go install golang.org/x/vuln/cmd/govulncheck@latest
50+
govulncheck ./...
4851
4952
deploy:
5053
name: Deploy to AWS Lambda
5154
needs: [ 'tests', 'lint' ]
5255
if: github.ref_name == 'main' || github.ref_name == 'develop'
56+
environment: ${{ github.ref_name }}
5357
runs-on: ubuntu-latest
5458
concurrency:
5559
group: deploy-${{ github.ref }}-${{ matrix.region }}
@@ -58,27 +62,23 @@ jobs:
5862
matrix:
5963
region: [ us-east-1, us-west-2 ]
6064
env:
61-
AWS_REGION: ${{ vars.AWS_REGION }}
62-
STG_AWS_ACCESS_KEY_ID: ${{ vars.STG_AWS_ACCESS_KEY_ID }}
63-
STG_AWS_SECRET_ACCESS_KEY: ${{ secrets.STG_AWS_SECRET_ACCESS_KEY }}
64-
STG_LAMBDA_ROLE: ${{ vars.STG_LAMBDA_ROLE }}
65-
STG_API_KEY_TABLE: ${{ vars.STG_API_KEY_TABLE }}
66-
STG_WEBAUTHN_TABLE: ${{ vars.STG_WEBAUTHN_TABLE }}
67-
PRD_AWS_ACCESS_KEY_ID: ${{ vars.PRD_AWS_ACCESS_KEY_ID }}
68-
PRD_AWS_SECRET_ACCESS_KEY: ${{ secrets.PRD_AWS_SECRET_ACCESS_KEY }}
69-
PRD_LAMBDA_ROLE: ${{ vars.PRD_LAMBDA_ROLE }}
70-
PRD_API_KEY_TABLE: ${{ vars.PRD_API_KEY_TABLE }}
71-
PRD_WEBAUTHN_TABLE: ${{ vars.PRD_WEBAUTHN_TABLE }}
65+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
66+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
67+
LAMBDA_ROLE: ${{ vars.LAMBDA_ROLE }}
68+
API_KEY_TABLE: ${{ vars.API_KEY_TABLE }}
69+
WEBAUTHN_TABLE: ${{ vars.WEBAUTHN_TABLE }}
7270

7371
steps:
7472
- name: Checkout code
7573
uses: actions/checkout@v4
74+
7675
- name: Deploy
77-
run: docker compose -f actions-services.yml run --rm app ./scripts/deploy.sh ${{ matrix.region }}
76+
run: docker compose run app ./scripts/deploy.sh ${{ matrix.region }}
7877

7978
build-and-publish:
8079
name: Build and Publish
8180
needs: [ 'tests', 'lint' ]
81+
if: github.ref_name == 'main' || github.ref_name == 'develop'
8282
runs-on: ubuntu-latest
8383
steps:
8484
- name: Checkout code
@@ -102,7 +102,7 @@ jobs:
102102
uses: docker/metadata-action@v5
103103
with:
104104
images: |
105-
${{ vars.IMAGE_NAME }}
105+
${{ vars.DOCKER_ORG }}/${{ github.event.repository.name }}
106106
ghcr.io/${{ github.repository }}
107107
tags: |
108108
type=ref,event=branch

actions-services.yml

Lines changed: 0 additions & 41 deletions
This file was deleted.

docker-compose.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ services:
77
volumes:
88
- ./.cert/:/cert/
99
env_file:
10-
- local.env
10+
- path: ./local.env
11+
required: false
1112

1213
dynamo:
1314
image: amazon/dynamodb-local
@@ -26,6 +27,7 @@ services:
2627
ports:
2728
- 8080
2829
environment:
30+
AWS_REGION: localhost
2931
AWS_ENDPOINT: http://dynamo:8000
3032
AWS_DEFAULT_REGION: localhost
3133
AWS_ACCESS_KEY_ID: abc123
@@ -46,7 +48,8 @@ services:
4648
sls:
4749
build: .
4850
env_file:
49-
- local.env
51+
- path: ./local.env
52+
required: false
5053
volumes:
5154
- .:/src
5255
command: ["bash"]

scripts/build.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

scripts/deploy.sh

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,7 @@ set -e
77
set -x
88

99
# Build binaries
10-
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
11-
"$DIR"/build.sh
12-
13-
# export appropriate env vars
14-
if [ "${GITHUB_REF_NAME}" == "develop" ];
15-
then
16-
STAGE="dev"
17-
export AWS_ACCESS_KEY_ID="${STG_AWS_ACCESS_KEY_ID}"
18-
set +x
19-
export AWS_SECRET_ACCESS_KEY="${STG_AWS_SECRET_ACCESS_KEY}"
20-
set -x
21-
export LAMBDA_ROLE="${STG_LAMBDA_ROLE}"
22-
export API_KEY_TABLE="${STG_API_KEY_TABLE}"
23-
export WEBAUTHN_TABLE="${STG_WEBAUTHN_TABLE}"
24-
elif [ "${GITHUB_REF_NAME}" == "main" ];
25-
then
26-
STAGE="production"
27-
export AWS_ACCESS_KEY_ID="${PRD_AWS_ACCESS_KEY_ID}"
28-
set +x
29-
export AWS_SECRET_ACCESS_KEY="${PRD_AWS_SECRET_ACCESS_KEY}"
30-
set -x
31-
export LAMBDA_ROLE="${PRD_LAMBDA_ROLE}"
32-
export API_KEY_TABLE="${PRD_API_KEY_TABLE}"
33-
export WEBAUTHN_TABLE="${PRD_WEBAUTHN_TABLE}"
34-
else
35-
echo "deployments only happen from develop and main branches (branch: ${GITHUB_REF_NAME})"
36-
exit 1
37-
fi
10+
CGO_ENABLED=0 go build -tags lambda.norpc -ldflags="-s -w" -o bootstrap ./lambda
3811

3912
# Print the Serverless version in the logs
4013
serverless --version

scripts/test.sh

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)