-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (111 loc) · 3.63 KB
/
test-and-release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: "units-test"
on:
pull_request:
push:
branches:
- main
- 'releases/*'
env:
AWS_ACCESS_KEY_ID: TestAccessKeyID
AWS_SECRET_ACCESS_KEY: TestSecretAccessKey
jobs:
# unit tests
units:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Boot up DynamoDB
run: docker-compose up -d
- uses: actions/setup-node@v4
with:
node-version: '16'
- run: npm ci
- run: make test
env:
DEBUG: 'true'
# test action works running from the graph
test:
runs-on: ubuntu-latest
env:
AWS_ENDPOINT_URL: 'http://localhost:8000'
ACTIONS_RUNNER_DEBUG: true
DEBUG: 'true'
steps:
- uses: actions/checkout@v4
- name: Boot up DynamoDB
run: docker-compose up -d
- name: Prep metadata table
env:
AWS_ACCESS_KEY_ID: TestAccessKeyID
AWS_SECRET_ACCESS_KEY: TestSecretAccessKey
run: |
aws dynamodb create-table \
--endpoint-url $AWS_ENDPOINT_URL \
--region local \
--table-name metadata \
--attribute-definitions \
AttributeName=repository,AttributeType=S \
AttributeName=commit_sha,AttributeType=S \
--key-schema \
AttributeName=repository,KeyType=HASH \
AttributeName=commit_sha,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=1,WriteCapacityUnits=1
- name: Test with given slices
uses: ./
with:
access_key_id: TestAccessKeyID
secret_access_key: TestSecretAccessKey
meta_table_arn: 'arn:aws:dynamodb:local:000000000000:table/metadata'
slices: 'api,consumer'
- name: Check if everything is there
env:
AWS_ACCESS_KEY_ID: TestAccessKeyID
AWS_SECRET_ACCESS_KEY: TestSecretAccessKey
run: ./.github/scripts/verify --slices api,consumer
- name: Test without slices
uses: ./
with:
access_key_id: TestAccessKeyID
secret_access_key: TestSecretAccessKey
meta_table_arn: 'arn:aws:dynamodb:local:000000000000:table/metadata'
- name: Check if everything is there
env:
AWS_ACCESS_KEY_ID: TestAccessKeyID
AWS_SECRET_ACCESS_KEY: TestSecretAccessKey
run: ./.github/scripts/verify
- name: Test with custom branch name
uses: ./
with:
access_key_id: TestAccessKeyID
secret_access_key: TestSecretAccessKey
meta_table_arn: 'arn:aws:dynamodb:local:000000000000:table/metadata'
branch: 'feature/add-examples'
- name: Check if everything is there
env:
AWS_ACCESS_KEY_ID: TestAccessKeyID
AWS_SECRET_ACCESS_KEY: TestSecretAccessKey
run: ./.github/scripts/verify --branch-name feature/add-examples
release:
if: github.ref == 'refs/heads/main'
needs: [units, test]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 16
- name: Install dependencies
run: npm ci
- name: Bump version and push tag
uses: anothrNick/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true
id: bump
- name: Release action
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.bump.outputs.tag }}