2023-09-18 12:12:03 +02:00
|
|
|
name: Core test Linux (REUSABLE)
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_call:
|
|
|
|
inputs:
|
|
|
|
TEST:
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
RELEASE:
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
tests:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
# Prepare
|
|
|
|
- name: Checkout source code
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.11
|
|
|
|
uses: actions/setup-python@v4
|
|
|
|
with:
|
|
|
|
python-version: "3.11"
|
|
|
|
cache: "pip"
|
2023-09-19 10:59:20 +02:00
|
|
|
- name: Install Firefox manually and dependencies
|
2023-09-19 09:16:53 +02:00
|
|
|
run: |
|
2023-09-19 11:12:11 +02:00
|
|
|
sudo apt purge -y firefox
|
2023-09-19 09:16:53 +02:00
|
|
|
sudo apt update
|
2023-09-19 10:59:20 +02:00
|
|
|
sudo apt install --no-install-recommends -y nodejs tar wget curl grep libappindicator3-1 libasound2 libdbus-glib-1-2 libxtst6 libxt6
|
|
|
|
wget -O firefox-setup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64"
|
|
|
|
tar xjf firefox-setup.tar.bz2 -C /opt/
|
|
|
|
ln -s /opt/firefox/firefox /usr/bin/firefox
|
|
|
|
rm -f firefox-setup.tar.bz2
|
2023-09-19 09:16:53 +02:00
|
|
|
- name: Download geckodriver
|
2023-09-18 18:15:02 +02:00
|
|
|
uses: nick-fields/retry@v2
|
|
|
|
with:
|
2023-09-19 09:16:53 +02:00
|
|
|
max_attempts: 3
|
2023-09-19 09:27:12 +02:00
|
|
|
timeout_minutes: 20
|
2023-09-18 18:15:02 +02:00
|
|
|
command: |
|
|
|
|
GECKODRIVER_VERSION=`curl -i https://github.com/mozilla/geckodriver/releases/latest | grep -Po 'v[0-9]+\.[0-9]+\.[0-9]+'` && \
|
|
|
|
wget -O geckodriver.tar.gz -w 5 https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz && \
|
|
|
|
sudo tar -C /usr/local/bin -xzvf geckodriver.tar.gz && \
|
|
|
|
sudo chmod +x /usr/local/bin/geckodriver && \
|
2023-09-19 09:16:53 +02:00
|
|
|
rm -f geckodriver.tar.gz
|
2023-09-18 12:12:03 +02:00
|
|
|
- name: Login to ghcr
|
|
|
|
uses: docker/login-action@v3
|
|
|
|
with:
|
|
|
|
registry: ghcr.io
|
|
|
|
username: ${{ github.actor }}
|
|
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Pull BW linux ubuntu test image
|
2023-09-18 13:54:47 +02:00
|
|
|
run: docker pull ghcr.io/bunkerity/ubuntu-tests:${{ inputs.RELEASE }}
|
2023-09-18 16:24:36 +02:00
|
|
|
- name: Copy deb file to host
|
|
|
|
run: |
|
|
|
|
container_id=$(docker create "ghcr.io/bunkerity/ubuntu-tests:${{ inputs.RELEASE }}")
|
|
|
|
docker cp "$container_id:/opt/bunkerweb_dev-1_amd64.deb" "/tmp/bunkerweb.deb"
|
|
|
|
docker rm "$container_id"
|
2023-09-18 12:12:03 +02:00
|
|
|
- name: Install BunkerWeb
|
|
|
|
run: |
|
2023-09-18 16:44:09 +02:00
|
|
|
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
|
2023-09-18 16:52:46 +02:00
|
|
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
|
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
2023-09-18 16:44:09 +02:00
|
|
|
sudo apt update
|
|
|
|
sudo apt install -y nginx=1.24.0-1~jammy
|
2023-09-18 18:15:02 +02:00
|
|
|
- name: Fix version without a starting number
|
|
|
|
if: inputs.RELEASE == 'testing' || inputs.RELEASE == 'dev'
|
|
|
|
run: echo "force-bad-version" | sudo tee -a /etc/dpkg/dpkg.cfg
|
|
|
|
- name: Install BunkerWeb
|
|
|
|
run: sudo apt install -fy /tmp/bunkerweb.deb
|
2023-09-18 12:12:03 +02:00
|
|
|
- name: Edit configuration files
|
|
|
|
run: |
|
2023-09-18 17:26:16 +02:00
|
|
|
echo "www.example.com 127.0.0.1" | sudo tee -a /etc/hosts
|
2023-09-18 17:45:40 +02:00
|
|
|
sudo rm -f /etc/bunkerweb/variables.env
|
|
|
|
sudo touch /etc/bunkerweb/variables.env
|
|
|
|
echo "SERVER_NAME=www.example.com" | sudo tee -a /etc/bunkerweb/variables.env
|
|
|
|
echo "HTTP_PORT=80" | sudo tee -a /etc/bunkerweb/variables.env
|
|
|
|
echo "HTTPS_PORT=443" | sudo tee -a /etc/bunkerweb/variables.env
|
2023-09-19 11:12:11 +02:00
|
|
|
echo 'DNS_RESOLVERS=9.9.9.9 8.8.8.8 8.8.4.4' | sudo tee -a /etc/bunkerweb/variables.env
|
2023-09-18 18:15:02 +02:00
|
|
|
echo "USE_BUNKERNET=no" | sudo tee -a /etc/bunkerweb/variables.env
|
|
|
|
echo "USE_BLACKLIST=no" | sudo tee -a /etc/bunkerweb/variables.env
|
2023-09-18 17:45:40 +02:00
|
|
|
sudo chown nginx:nginx /etc/bunkerweb/variables.env
|
2023-09-18 17:34:55 +02:00
|
|
|
sudo chmod 777 /etc/bunkerweb/variables.env
|
2023-09-18 12:12:03 +02:00
|
|
|
- name: Run tests
|
2023-09-18 16:24:36 +02:00
|
|
|
run: |
|
|
|
|
cd ./tests/core/${{ inputs.TEST }}
|
2023-09-18 18:15:02 +02:00
|
|
|
MAKEFLAGS="-j $(nproc)" find . -name "requirements.txt" -exec sudo pip install -r {} \;
|
2023-09-18 17:45:40 +02:00
|
|
|
sudo ./test.sh "linux"
|