-
Notifications
You must be signed in to change notification settings - Fork 287
151 lines (147 loc) · 7.47 KB
/
test.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Test
on:
push:
pull_request:
branches: [master]
jobs:
test-default-dump-path:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up DynamoDB Local
run: |
mkdir /tmp/dynamodb_local
wget -O - https://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz \
| tar xz --directory /tmp/dynamodb_local
java -Djava.library.path=/tmp/dynamodb_local/DynamoDBLocal_lib -jar /tmp/dynamodb_local/DynamoDBLocal.jar \
-sharedDb -inMemory &
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Test basic restore and backup
run: |
mkdir dump && cp -a tests/testTable dump
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s testTable -d testRestoredTable \
--host localhost --port 8000 --accessKey a --secretKey a
python dynamodump/dynamodump.py -m backup -r local -s testRestoredTable --host localhost --port 8000 \
--accessKey a --secretKey a
python tests/test.py
- name: Test wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "*" --host localhost --port 8000 \
--accessKey a --secretKey a
rm -rf dump/test*
python dynamodump/dynamodump.py -m backup -r local -s "*" --host localhost --port 8000 --accessKey a \
--secretKey a
python tests/test.py
- name: Test prefixed wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "test*" --host localhost --port 8000 \
--accessKey a --secretKey a --prefixSeparator ""
rm -rf dump/test*
python dynamodump/dynamodump.py -m backup -r local -s "test*" --host localhost --port 8000 --accessKey a \
--secretKey a --prefixSeparator ""
python tests/test.py
test-non-default-dump-path:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
env:
DUMP_PATH: abc
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up DynamoDB Local
run: |
mkdir /tmp/dynamodb_local
wget -O - https://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz \
| tar xz --directory /tmp/dynamodb_local
java -Djava.library.path=/tmp/dynamodb_local/DynamoDBLocal_lib -jar /tmp/dynamodb_local/DynamoDBLocal.jar \
-sharedDb -inMemory &
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Test non default dump path basic restore and backup
run: |
mkdir ${{ env.DUMP_PATH }} && cp -a tests/testTable ${{ env.DUMP_PATH }}
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s testTable -d testRestoredTable \
--host localhost --port 8000 --accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}
python dynamodump/dynamodump.py -m backup -r local -s testRestoredTable --host localhost --port 8000 \
--accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py
- name: Test non default dump path wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "*" --host localhost --port 8000 \
--accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}/test*
python dynamodump/dynamodump.py -m backup -r local -s "*" --host localhost --port 8000 --accessKey a \
--secretKey a --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py
- name: Test non default dump path prefixed wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "test*" --host localhost --port 8000 \
--accessKey a --secretKey a --prefixSeparator "" --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}/test*
python dynamodump/dynamodump.py -m backup -r local -s "test*" --host localhost --port 8000 --accessKey a \
--secretKey a --prefixSeparator "" --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py
test-absolute-dump-path:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
env:
DUMP_PATH: /tmp/abs
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up DynamoDB Local
run: |
mkdir /tmp/dynamodb_local
wget -O - https://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz \
| tar xz --directory /tmp/dynamodb_local
java -Djava.library.path=/tmp/dynamodb_local/DynamoDBLocal_lib -jar /tmp/dynamodb_local/DynamoDBLocal.jar \
-sharedDb -inMemory &
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Test absolute dump path basic restore and backup
run: |
mkdir ${{ env.DUMP_PATH }} && cp -a tests/testTable ${{ env.DUMP_PATH }}
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s testTable -d testRestoredTable \
--host localhost --port 8000 --accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}
python dynamodump/dynamodump.py -m backup -r local -s testRestoredTable --host localhost --port 8000 \
--accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py
- name: Test absolute dump path wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "*" --host localhost --port 8000 \
--accessKey a --secretKey a --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}/test*
python dynamodump/dynamodump.py -m backup -r local -s "*" --host localhost --port 8000 --accessKey a \
--secretKey a --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py
- name: Test absolute dump path prefixed wildcard restore and backup
run: |
python dynamodump/dynamodump.py -m restore --noConfirm -r local -s "test*" --host localhost --port 8000 \
--accessKey a --secretKey a --prefixSeparator "" --dumpPath ${{ env.DUMP_PATH }}
rm -rf ${{ env.DUMP_PATH }}/test*
python dynamodump/dynamodump.py -m backup -r local -s "test*" --host localhost --port 8000 --accessKey a \
--secretKey a --prefixSeparator "" --dumpPath ${{ env.DUMP_PATH }}
DUMP_DATA_DIR=${{ env.DUMP_PATH }} python tests/test.py