forked from cypht-org/cypht
-
Notifications
You must be signed in to change notification settings - Fork 0
146 lines (120 loc) · 4.29 KB
/
Test-Build.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
name: Test and Build
defaults:
run:
shell: bash
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
# Test-phpunit:
# name: PHPUNIT (PHP-${{ matrix.php-versions }} && DB-${{ matrix.database }})
# runs-on: ubuntu-latest
# strategy:
# matrix:
# php-versions: ['8.1']
# database: ['mysql', 'postgres', 'sqlite']
# env:
# PHP_V: ${{ matrix.php-versions }}
# DB: ${{ matrix.database }}
# TEST_ARG: 'phpunit'
# services:
# mysql:
# image: mysql:latest
# env:
# MYSQL_ROOT_PASSWORD: cypht_test
# MYSQL_DATABASE: cypht_test
# MYSQL_USER: cypht_test
# MYSQL_PASSWORD: cypht_test
# ports:
# - 3306:3306
# options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
# postgresql:
# image: postgres:latest
# env:
# POSTGRES_USER: cypht_test
# POSTGRES_PASSWORD: cypht_test
# POSTGRES_DB: cypht_test
# ports:
# - 5432:5432
# options: --health-cmd="pg_isready" --health-interval=10s --health-timeout=5s --health-retries=3
# steps:
# - name: "System Install Dependencies"
# run: sudo apt-get install -y mysql-client postgresql-client sqlite3 libsodium-dev
# - name: "Checkout code"
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: "Set up PHP"
# uses: shivammathur/setup-php@v2
# with:
# php-version: ${{ matrix.php-versions }}
# extensions: pdo, sodium, sqlite, pdo_mysql, pdo_pgsql, memcached, redis, gd, gnupg
# tools: phpunit, composer
# ini-values: cgi.fix_pathinfo=1
# env:
# fail-fast: true
# - name: "Script: setup.sh"
# run: bash .github/tests/setup.sh
# - name: "Composer Install Dependencies"
# run: |
# composer install
# composer require --dev php-coveralls/php-coveralls
# php scripts/config_gen.php
# - name: "Script: test.sh"
# run: bash .github/tests/test.sh
Test-selenium:
name: SELENIUM (PHP-${{ matrix.php-versions }} && DB-${{ matrix.database }})
runs-on: ubuntu-latest
# needs: Test-phpunit
strategy:
matrix:
php-versions: ['8.1']
database: ['sqlite']
env:
PHP_V: ${{ matrix.php-versions }}
DB: ${{ matrix.database }}
TEST_ARG: 'selenium'
steps:
- name: "Checkout code"
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "System Install Dependencies"
run: |
sudo hostnamectl set-hostname cypht-test.org
sudo usermod -aG docker www-data
sudo chmod g+s -R "$(pwd)"
sudo setfacl -d -m g::rwx "$(pwd)"
# chrome
#wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor > /etc/apt/trusted.gpg.d/google.gpg
sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install -y google-chrome-stable dovecot-imapd dovecot-lmtpd postfix python3-pip
sudo bash .github/tests/selenium/webdriver/webdriver.sh
pip install -r tests/selenium/requirements.txt
- name: "Set up PHP"
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_V }}
extensions: pdo, sodium, curl, mbstring, xml, sqlite, pdo_mysql, pdo_pgsql, memcached, redis, gd, gnupg, imagick, bcmath, tidy, soap, xdebug, bcmath
tools: phpunit, composer
ini-values: cgi.fix_pathinfo=1
env:
fail-fast: true
- name: "Composer Install Dependencies"
run: |
composer install
php scripts/config_gen.php
- name: "Script: setup.sh"
run: bash .github/tests/setup.sh
- name: "Script: test.sh"
run: bash .github/tests/test.sh
Call-Image-Build:
needs: Test-selenium
uses: ./.github/workflows/Nightly-Image.yml