-
Notifications
You must be signed in to change notification settings - Fork 53
118 lines (92 loc) · 3.22 KB
/
Copy pathcoverage.yml
File metadata and controls
118 lines (92 loc) · 3.22 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
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
name: Coverage
on:
workflow_dispatch:
jobs:
setup-and-run:
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Install needed packages
id: apt
run: |
sudo apt update
sudo apt install docker-compose-v2 openssh-client
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Fetch coverage script
id: clone-coverage
run: |
eval "$(ssh-agent -s)"
ssh-add - <<< '${{ secrets.COVERAGE_SCRIPT_CLONE }}'
cd ~
git clone git@github.com:specify/specify-development
sudo install -m 0777 -o "$USER" specify-development/scripts/tests/{run-coverage,test_coverage.py} /usr/bin/
cd -
- name: Configure specify
id: config-specify
run: |
{ IFS= read -d "" -r env <<-EOS
DATABASE_HOST=mariadb
DATABASE_PORT=3306
MYSQL_ROOT_PASSWORD=password
DATABASE_NAME=specify
MASTER_NAME=root
MASTER_PASSWORD=password
MASTER_HOST=%
MIGRATOR_NAME=root
MIGRATOR_PASSWORD=password
MIGRATOR_HOST=%
APP_USER_NAME=root
APP_USER_PASSWORD=password
APP_HOST=%
ALLOW_SUPPORT_LOGIN=false
SUPPORT_LOGIN_TTL=180
SECRET_KEY=change_this_to_some_unique_random_string
ASSET_SERVER_URL=http://host.docker.internal/web_asset_store.xml
ASSET_SERVER_KEY=your_asset_server_access_key
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB_INDEX=0
REPORT_RUNNER_HOST=report-runner
REPORT_RUNNER_PORT=8080
CELERY_BROKER_URL=redis://redis/0
CELERY_RESULT_BACKEND=redis://redis/1
TIME_ZONE=America/Chicago
LOG_LEVEL=WARNING
SP7_DEBUG=true
EOS
} || true
echo "$env" > .env
sed -i 's/#[ ]*\(.*requirements-testing.txt\)/\1/; s/\(COPY\) \(requirements-testing.txt\)/\1 --chown=specify:specify \2/' Dockerfile
sed -i 's/\(\(DATABASE_\|MASTER_\|MIGRATOR\|APP_USER_\)[^O].*\) = \(.*\)/\1 = os.environ.get("\1", "")/' specifyweb/settings/specify_settings.py
for i in range {0..3}; do
sudo chmod a+x $(find . -type d)
sudo chmod -R a+rw .
done
docker compose up --build -d
- name: Fix mariadb
id: reboot-mariadb
run: |
sleep 10
docker compose up -d mariadb
sleep 10
docker exec mariadb mariadb -uroot -ppassword -e"DROP USER root;
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
DROP DATABASE IF EXISTS specify;"
docker compose down
docker compose up -d
sleep 10
- name: Run the script
id: run-coverage
run: run-coverage -t pj -a pj -d pj -o html,csv
- name: Upload report as artifact
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: ./report.tar.bz2
archive: false
retention-days: 1