-
Notifications
You must be signed in to change notification settings - Fork 8
57 lines (49 loc) · 2.45 KB
/
functional-test.yml
File metadata and controls
57 lines (49 loc) · 2.45 KB
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
name: Functional Test
on:
pull_request:
types: [opened, synchronize, reopened]
branches: ['main']
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: ⬇️ Git clone the repository
uses: actions/checkout@v5
- name: 📦 Install Mise
run: |
curl https://mise.run | sh
mise install
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build MTK
run: mise run build
- name: Start MySQL
run: sudo /etc/init.d/mysql start
- name: "Test: Dump"
run: |
mysql -e 'CREATE DATABASE dump_test;' -uroot -proot
mysql -uroot -proot dump_test < .github/workflows/functional-test/fixtures/dump/db.sql
bin/mtk dump dump_test --port=3306 --user=root --password=root --host=127.0.0.1 > mtk-dump.sql
mysql -e 'DROP DATABASE dump_test;' -uroot -proot
sed '$d' mtk-dump.sql > mtk-dump-clean.sql
mysql -e 'CREATE DATABASE dump_test;' -uroot -proot
mysql -uroot -proot dump_test < mtk-dump-clean.sql
diff -q .github/workflows/functional-test/fixtures/dump/db.sql mtk-dump-clean.sql
- name: "Test: Dump Tables"
run: |
mysql -e 'CREATE DATABASE dump_files_test;' -uroot -proot
# Reusing the same fixture as our dump test
mysql -uroot -proot dump_files_test < .github/workflows/functional-test/fixtures/dump/db.sql
mkdir /tmp/dumps
bin/mtk dump-tables dump_files_test --port=3306 --user=root --password=root --host=127.0.0.1 /tmp/dumps
mysql -e 'DROP DATABASE dump_files_test;' -uroot -proot
sed '$d' /tmp/dumps/products.sql > /tmp/dumps/products-clean.sql
sed '$d' /tmp/dumps/orders.sql > /tmp/dumps/orders-clean.sql
sed '$d' /tmp/dumps/users.sql > /tmp/dumps/users-clean.sql
mysql -e 'CREATE DATABASE dump_files_test;' -uroot -proot
mysql -uroot -proot dump_files_test < /tmp/dumps/products-clean.sql
mysql -uroot -proot dump_files_test < /tmp/dumps/orders-clean.sql
mysql -uroot -proot dump_files_test < /tmp/dumps/users-clean.sql
diff -q .github/workflows/functional-test/fixtures/dump-tables/products.sql /tmp/dumps/products-clean.sql
diff -q .github/workflows/functional-test/fixtures/dump-tables/orders.sql /tmp/dumps/orders-clean.sql
diff -q .github/workflows/functional-test/fixtures/dump-tables/users.sql /tmp/dumps/users-clean.sql