-
Notifications
You must be signed in to change notification settings - Fork 4
99 lines (88 loc) · 3.45 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
name: "[Ubuntu] Test & check build"
on: [ push, pull_request ]
jobs:
lint:
name: Linting
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: ^1.22
- uses: actions/checkout@v3
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
args: "-E stylecheck,revive,gocritic --out-${NO_FUTURE}format colored-line-number"
- name: Install ruff
run: pip install ruff
- name: Run ruff
run: |
ruff check wrappers/python/eduvpn_common
ruff format --check wrappers/python/eduvpn_common
test:
name: Run Tests
runs-on: ubuntu-22.04
env:
WEB_FQDN: eduvpnghci
PORTAL_USER: ci
PORTAL_PASS: ci
steps:
- uses: actions/checkout@v3
- name: Setup server
run: |
git clone https://codeberg.org/eduvpn/deploy
cd deploy
sudo cp resources/[email protected] /etc/apt/trusted.gpg.d/[email protected]
echo "deb https://repo.eduvpn.org/v3/deb jammy main" | sudo tee /etc/apt/sources.list.d/eduVPN_v3.list
sudo apt-get -y update
sudo apt-get install -y vpn-user-portal vpn-server-node vpn-maint-scripts
sudo openssl req -nodes -subj "/CN=${WEB_FQDN}" -addext "subjectAltName = DNS:${WEB_FQDN}" -x509 -sha256 -newkey rsa:2048 -keyout "/etc/ssl/private/${WEB_FQDN}.key" -out "/etc/ssl/certs/${WEB_FQDN}.crt" -days 90
# Apache 2
PHP_VERSION=$(/usr/sbin/phpquery -V)
sudo a2enmod ssl headers rewrite proxy_fcgi setenvif
sudo a2dismod status
sudo a2enconf "php${PHP_VERSION}-fpm"
sudo cp resources/ssl.debian.conf /etc/apache2/mods-available/ssl.conf
sudo cp resources/vpn.example.debian.conf "/etc/apache2/sites-available/${WEB_FQDN}.conf"
sudo cp resources/localhost.debian.conf /etc/apache2/sites-available/localhost.conf
sudo sed -i "s/vpn.example/${WEB_FQDN}/" "/etc/apache2/sites-available/${WEB_FQDN}.conf"
sudo a2enconf vpn-user-portal
sudo a2ensite "${WEB_FQDN}" localhost
sudo a2dissite 000-default
sudo systemctl restart apache2
# NETWORK
sudo cp /etc/vpn-user-portal/keys/node.0.key /etc/vpn-server-node/keys/node.key
sudo systemctl enable --now "php${PHP_VERSION}-fpm"
sudo systemctl enable --now apache2
sudo /usr/libexec/vpn-server-node/server-config
sudo -u www-data vpn-user-portal-account --add "${PORTAL_USER}" --password "${PORTAL_PASS}"
# Update /etc/hosts to point to our server
echo "127.0.0.1 ${WEB_FQDN}" | sudo tee -a /etc/hosts
- uses: actions/setup-go@v3
with:
go-version: ^1.22
- name: Selenium dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install tar python3 python3-selenium
- name: Test Go
run: |
# Add geckodriver and go to path
export PATH=$PATH:/usr/local/go/bin
## Run tests
SERVER_URI=https://${WEB_FQDN} make test
build-lib:
name: Build shared Go library
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ^1.22
- run: make
- uses: actions/upload-artifact@v3
with:
name: shared-lib
path: exports/lib/
retention-days: 1