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/repo+v3@eduvpn.org.asc /etc/apt/trusted.gpg.d/repo+v3@eduvpn.org.asc 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