Skip to content

HA tests

HA tests #162

Workflow file for this run

name: HA tests
on:
push:
pull_request:
branches: [ devel ]
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 2 * * 6'
jobs:
ha_django_mariadb_tests:
name: "ha_django_mariadb_tests"
runs-on: ubuntu-latest
steps:
- name: "checkout GIT"
uses: actions/checkout@v4
- name: Retrieve Version from version.py
run: |
echo TAG_NAME=$(cat acme_srv/version.py | grep -i __version__ | head -n 1 | sed 's/__version__ = //g' | sed s/\'//g) >> $GITHUB_ENV
- run: echo "Latest tag is ${{ env.TAG_NAME }}"
- name: update version number in spec file
run: |
# sudo sed -i "s/Source0:.*/Source0: %{name}-%{version}.tar.gz/g" examples/install_scripts/rpm/acme2certifier.spec
sudo sed -i "s/__version__/${{ env.TAG_NAME }}/g" examples/install_scripts/rpm/acme2certifier.spec
cat examples/install_scripts/rpm/acme2certifier.spec
- name: build RPM package
id: rpm
uses: grindsa/rpmbuild@alma9
with:
spec_file: "examples/install_scripts/rpm/acme2certifier.spec"
- run: echo "path is ${{ steps.rpm.outputs.rpm_dir_path }}"
- name: "Setup environment"
run: |
docker network create acme
sudo mkdir -p data
sudo chmod -R 777 data
sudo cp ${{ steps.rpm.outputs.rpm_dir_path }}noarch/acme2certifier-${{ env.TAG_NAME }}-1.0.noarch.rpm data
# sudo cp examples/Docker/almalinux-systemd/rpm_tester.sh data
sudo mkdir -p $PWD/lego
sudo mkdir -p $PWD/certbot
sudo mkdir -p $PWD/acme-sh
- name: "Bring up Almalinux instance"
run: |
sudo cp examples/Docker/almalinux-systemd/Dockerfile data
cat data/Dockerfile | docker build -t almalinux-systemd -f - . --no-cache
docker run -d -id --rm --privileged --network acme --name=alma9-c1 -v "$(pwd)/data":/tmp/acme2certifier almalinux-systemd
docker run -d -id --rm --privileged --network acme --name=alma9-c2 -v "$(pwd)/data":/tmp/acme2certifier almalinux-systemd
- name: "Prepare almalinux instances"
run: |
docker exec alma9-c1 yum -y install openssh-server openssh-clients procps rsyslog
docker exec alma9-c1 systemctl enable sshd
docker exec alma9-c1 systemctl start sshd
docker exec alma9-c1 systemctl start rsyslog
docker exec alma9-c1 yum install -y epel-release
docker exec alma9-c2 yum -y install openssh-server openssh-clients procps rsyslog
docker exec alma9-c2 systemctl enable sshd
docker exec alma9-c2 systemctl start rsyslog
docker exec alma9-c2 systemctl start sshd
docker exec alma9-c2 yum install -y epel-release
- name: "Prepare ssh users"
run: |
ssh-keygen -t rsa -N '' -f data/id_lsyncd_alma9-c1
ssh-keygen -t rsa -N '' -f data/id_lsyncd_alma9-c2
docker exec alma9-c1 rm /run/nologin
docker exec alma9-c1 mkdir -p /root/.ssh
docker exec alma9-c1 chmod 700 /root/.ssh
docker exec alma9-c1 cp /tmp/acme2certifier/id_lsyncd_alma9-c1 /root/.ssh/id_lsyncd
docker exec alma9-c1 cp /tmp/acme2certifier/id_lsyncd_alma9-c1.pub /root/.ssh/id_lsyncd.pub
docker exec alma9-c1 cp /tmp/acme2certifier/id_lsyncd_alma9-c2.pub /root/.ssh/authorized_keys
docker exec alma9-c1 chmod 600 /root/.ssh/id_lsyncd
docker exec alma9-c1 chmod 600 /root/.ssh/authorized_keys
docker exec alma9-c2 rm /run/nologin
docker exec alma9-c2 mkdir -p /root/.ssh
docker exec alma9-c2 chmod 700 /root/.ssh
docker exec alma9-c2 cp /tmp/acme2certifier/id_lsyncd_alma9-c2 /root/.ssh/id_lsyncd
docker exec alma9-c2 cp /tmp/acme2certifier/id_lsyncd_alma9-c2.pub /root/.ssh/id_lsyncd.pub
docker exec alma9-c2 cp /tmp/acme2certifier/id_lsyncd_alma9-c1.pub /root/.ssh/authorized_keys
docker exec alma9-c2 chmod 600 /root/.ssh/id_lsyncd
docker exec alma9-c2 chmod 600 /root/.ssh/authorized_keys
- name: "Configure mariadb on alma9-c1"
run: |
docker exec alma9-c1 yum install -y mariadb-server
docker exec alma9-c1 systemctl enable mariadb
docker exec alma9-c1 sed -i "s#pid-file=/run/mariadb/mariadb.pid#pid-file=/run/mariadb/mariadb.pid\nserver-id = 1\nreport_host = alma9-c1\nlog_bin = /var/log/mariadb/mariadb-bin\nlog_bin_index = /var/log/mariadb/mariadb-bin.index\nrelay_log = /var/log/mariadb/relay-bin\nrelay_log_index = /var/log/mariadb/relay-bin.index\nlog-slave-updates\nauto_increment_increment=2\nauto_increment_offset=1#g" /etc/my.cnf.d/mariadb-server.cnf
docker exec alma9-c1 systemctl restart mariadb
docker exec alma9-c1 mysql -u root -e"CREATE USER 'replusr'@'%' IDENTIFIED BY 'replpasswd';"
docker exec alma9-c1 mysql -u root -e"GRANT REPLICATION SLAVE ON *.* TO 'replusr'@'%';"
docker exec alma9-c1 mysql -u root -e"FLUSH PRIVILEGES;"
docker exec alma9-c1 mysql -u root -e"SHOW MASTER STATUS\G;" | grep File | awk '{print $2}'
docker exec alma9-c1 mysql -u root -e"SHOW MASTER STATUS\G;" | grep Position | awk '{print $2}'
echo FILE_NAME=$(docker exec alma9-c1 mysql -u root -e"SHOW MASTER STATUS\G;" | grep File | awk '{print $2}') >> $GITHUB_ENV
echo POSITION=$(docker exec alma9-c1 mysql -u root -e"SHOW MASTER STATUS\G;" | grep Position | awk '{print $2}') >> $GITHUB_ENV
- run: echo "FILE_NAME is ${{ env.FILE_NAME }}"
- run: echo "POSITION tag is ${{ env.POSITION }}"
- name: "Configure mariadb on alma9-c2"
run: |
docker exec alma9-c2 yum install -y mariadb-server
docker exec alma9-c2 systemctl enable mariadb
docker exec alma9-c2 sed -i "s#pid-file=/run/mariadb/mariadb.pid#pid-file=/run/mariadb/mariadb.pid\nserver-id = 2\nreport_host = alma9-c2\nlog_bin = /var/log/mariadb/mariadb-bin\nlog_bin_index = /var/log/mariadb/mariadb-bin.index\nrelay_log = /var/log/mariadb/relay-bin\nrelay_log_index = /var/log/mariadb/relay-bin.index\nlog-slave-updates\nauto_increment_increment=2\nauto_increment_offset=2#g" /etc/my.cnf.d/mariadb-server.cnf
docker exec alma9-c2 systemctl restart mariadb
docker exec alma9-c2 mysql -u root -e"CREATE USER 'replusr'@'%' IDENTIFIED BY 'replpasswd';"
docker exec alma9-c2 mysql -u root -e"GRANT REPLICATION SLAVE ON *.* TO 'replusr'@'%';"
docker exec alma9-c2 mysql -u root -e"FLUSH PRIVILEGES;"
- name: "Configure master-master replication on alma9-c2"
run: |
docker exec alma9-c2 mysql -u root -e"STOP SLAVE;"
docker exec alma9-c2 mysql -u root -e"CHANGE MASTER TO MASTER_HOST='alma9-c1.acme', MASTER_USER='replusr', MASTER_PASSWORD='replpasswd', MASTER_LOG_FILE='$FILE_NAME', MASTER_LOG_POS=$POSITION;"
docker exec alma9-c2 mysql -u root -e"START SLAVE;"
env:
FILE_NAME: ${{ env.FILE_NAME }}
POSITION: ${{ env.POSITION }}
- name: "Check replication status on alma9-c2"
run: |
docker exec alma9-c2 mysql -u root -e"SHOW SLAVE STATUS\G;"
docker exec alma9-c2 mysql -u root -e"SHOW SLAVE STATUS\G;" | grep "Slave_IO_Running: Yes"
docker exec alma9-c2 mysql -u root -e"SHOW SLAVE STATUS\G;" | grep "Slave_SQL_Running: Yes"
- name: "Configure master-master replication on alma9-c1"
run: |
docker exec alma9-c1 mysql -u root -e"STOP SLAVE;"
docker exec alma9-c1 mysql -u root -e"CHANGE MASTER TO MASTER_HOST='alma9-c2.acme', MASTER_USER='replusr', MASTER_PASSWORD='replpasswd', MASTER_LOG_FILE='$FILE_NAME', MASTER_LOG_POS=$POSITION;"
docker exec alma9-c1 mysql -u root -e"START SLAVE;"
env:
FILE_NAME: ${{ env.FILE_NAME }}
POSITION: ${{ env.POSITION }}
- name: "Check replication status on alma9-c1"
run: |
docker exec alma9-c1 mysql -u root -e"SHOW SLAVE STATUS\G;"
docker exec alma9-c1 mysql -u root -e"SHOW SLAVE STATUS\G;" | grep "Slave_IO_Running: Yes"
docker exec alma9-c1 mysql -u root -e"SHOW SLAVE STATUS\G;" | grep "Slave_SQL_Running: Yes"
- name: "Test replication between cluster nodes"
run: |
docker exec alma9-c1 mysql -u root -e"CREATE DATABASE testdb CHARACTER SET UTF8;"
sleep 3
docker exec alma9-c2 mysql -u root -e"SHOW DATABASES;" | grep testdb
docker exec alma9-c2 mysql -u root -e"DROP DATABASE testdb;"
sleep 3
docker exec alma9-c1 mysql -u root -e"SHOW DATABASES;" | grep testdb -vqz
docker exec alma9-c1 mysql -u root -e"SHOW DATABASES;"
# docker exec alma9-c1 mysql -u root -e"CREATE DATABASE acme2certifier CHARACTER SET UTF8;"
# docker exec alma9-c1 mysql -u root -e"GRANT ALL PRIVILEGES ON acme2certifier.* TO 'acme2certifier'@'%' IDENTIFIED BY '1mmSvDFl';"
# docker exec alma9-c1 mysql -u root -e"FLUSH PRIVILEGES;"
- name: "Install Lcynd"
run: |
docker exec alma9-c1 yum install -y lsyncd
docker exec alma9-c1 mkdir -p /opt/acme2certifier/volume
docker exec alma9-c2 yum install -y lsyncd
docker exec alma9-c2 mkdir -p /opt/acme2certifier/volume
- name: "Configure Lcynd"
run: |
cat <<EOF > data/alma9-c1-lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
statusInterval = 20,
nodaemon = false
}
sync {
default.rsyncssh,
source = "/opt/acme2certifier/volume/",
host = "alma9-c2",
targetdir = "/opt/acme2certifier/volume/",
rsync = {
rsh = "/usr/bin/ssh -l root -i /root/.ssh/id_lsyncd -o StrictHostKeyChecking=no",
compress = true,
owner = true,
group = true,
archive = true
}
}
EOF
cat <<EOF > data/alma9-c2-lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
statusInterval = 20,
nodaemon = false
}
sync {
default.rsyncssh,
source = "/opt/acme2certifier/volume/",
host = "alma9-c1",
targetdir = "/opt/acme2certifier/volume/",
rsync = {
rsh = "/usr/bin/ssh -l root -i /root/.ssh/id_lsyncd -o StrictHostKeyChecking=no",
compress = true,
owner = true,
group = true,
archive = true
}
}
EOF
docker exec alma9-c1 cp /tmp/acme2certifier/alma9-c1-lsyncd.conf /etc/lsyncd.conf
docker exec alma9-c2 cp /tmp/acme2certifier/alma9-c2-lsyncd.conf /etc/lsyncd.conf
docker exec alma9-c1 systemctl restart lsyncd
docker exec alma9-c1 systemctl enable lsyncd
docker exec alma9-c2 systemctl restart lsyncd
docker exec alma9-c2 systemctl enable lsyncd
- name: "Test syncronisation between cluster nodes"
run: |
docker exec alma9-c1 touch /opt/acme2certifier/volume/lsycd_test.txt
sleep 20
docker exec alma9-c2 ls /opt/acme2certifier/volume/ | grep -i lsycd_test.txt
docker exec alma9-c2 rm /opt/acme2certifier/volume/lsycd_test.txt
sleep 20
docker exec alma9-c1 ls -la /opt/acme2certifier/volume/ | grep -i lsycd_test.txt -vqz
- name: "Install acme2certifier"
run: |
docker exec alma9-c1 yum install python3-mysqlclient python3-django3 python3-pyyaml -y
docker exec alma9-c1 yum localinstall -y /tmp/acme2certifier/acme2certifier-${{ env.TAG_NAME }}-1.0.noarch.rpm
# docker exec alma9-c1 yum localinstall -y /tmp/acme2certifier/acme2certifier-0.34-1.0.noarch.rpm
docker exec alma9-c1 chown -R nginx /opt/acme2certifier/volume/
docker exec alma9-c1 cp /opt/acme2certifier/examples/nginx/nginx_acme_srv.conf /etc/nginx/conf.d
docker exec alma9-c1 cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
docker exec alma9-c1 sh -c "head -n 37 /etc/nginx/nginx.conf.orig > /etc/nginx/nginx.conf"
docker exec alma9-c1 sh -c "echo '}' >> /etc/nginx/nginx.conf"
docker exec alma9-c1 cp /opt/acme2certifier/examples/db_handler/django_handler.py /opt/acme2certifier/acme_srv/db_handler.py
docker exec alma9-c1 sh -c "cp -r /opt/acme2certifier/examples/django/* /opt/acme2certifier/"
docker exec alma9-c1 rm /opt/acme2certifier/acme_srv/acme_srv.cfg
docker exec alma9-c1 ln -s /opt/acme2certifier/volume/acme_srv.cfg /opt/acme2certifier/acme_srv/
docker exec alma9-c1 systemctl enable acme2certifier
docker exec alma9-c1 systemctl start acme2certifier
docker exec alma9-c1 systemctl enable nginx
docker exec alma9-c1 systemctl start nginx
docker exec alma9-c2 yum install python3-mysqlclient python3-django3 python3-pyyaml -y
docker exec alma9-c2 yum localinstall -y /tmp/acme2certifier/acme2certifier-${{ env.TAG_NAME }}-1.0.noarch.rpm
# docker exec alma9-c2 yum localinstall -y /tmp/acme2certifier/acme2certifier-0.34-1.0.noarch.rpm
docker exec alma9-c2 chown -R nginx /opt/acme2certifier/volume/
docker exec alma9-c2 cp /opt/acme2certifier/examples/nginx/nginx_acme_srv.conf /etc/nginx/conf.d
docker exec alma9-c2 cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
docker exec alma9-c2 sh -c "head -n 37 /etc/nginx/nginx.conf.orig > /etc/nginx/nginx.conf"
docker exec alma9-c2 sh -c "echo '}' >> /etc/nginx/nginx.conf"
docker exec alma9-c2 cp /opt/acme2certifier/examples/db_handler/django_handler.py /opt/acme2certifier/acme_srv/db_handler.py
docker exec alma9-c2 sh -c "cp -r /opt/acme2certifier/examples/django/* /opt/acme2certifier/"
docker exec alma9-c2 rm /opt/acme2certifier/acme_srv/acme_srv.cfg
docker exec alma9-c2 ln -s /opt/acme2certifier/volume/acme_srv.cfg /opt/acme2certifier/acme_srv/
docker exec alma9-c2 systemctl enable acme2certifier
docker exec alma9-c2 systemctl start acme2certifier
docker exec alma9-c2 systemctl enable nginx
docker exec alma9-c2 systemctl start nginx
- name: "Prepare handler configuration"
run: |
sudo mkdir -p data/volume/acme_ca/certs
sudo cp test/ca/sub-ca-key.pem test/ca/sub-ca-crl.pem test/ca/sub-ca-cert.pem test/ca/root-ca-cert.pem data/volume/acme_ca/
sudo cp .github/openssl_ca_handler.py_acme_srv_choosen_handler.cfg data/volume/acme_srv.cfg
sudo sed -i "s#volume/acme_ca/#/opt/acme2certifier/volume/acme_ca/#g" data/volume/acme_srv.cfg
sudo sed -i "s#examples/ca_handler/#/opt/acme2certifier/examples/ca_handler/#g" data/volume/acme_srv.cfg
sudo sed -i "s/challenge_validation_disable: False/challenge_validation_disable: True/g" data/volume/acme_srv.cfg
docker exec alma9-c1 sh -c "cp -r /tmp/acme2certifier/volume/* /opt/acme2certifier/volume/"
docker exec alma9-c1 chown -R nginx.nginx /opt/acme2certifier/volume/
- name: "Profile ${{ secrets.ASA_PROFILE1 }} - Sleep for 20s"
uses: juliangruber/[email protected]
with:
time: 20s
- name: "Configure acme2certifier"
run: |
docker exec alma9-c1 mysql -u root -e"CREATE DATABASE acme2certifier CHARACTER SET UTF8;"
docker exec alma9-c1 mysql -u root -e"GRANT ALL PRIVILEGES ON acme2certifier.* TO 'acme2certifier'@'%' IDENTIFIED BY 'a2cpasswd';"
docker exec alma9-c1 mysql -u root -e"FLUSH PRIVILEGES;"
cp .github/django_settings_mariadb.py data/alma9-c1-settings.py
sudo sed -i "s/mariadbsrv.acme/alma9-c1.acme/g" data/alma9-c1-settings.py
sudo sed -i "s/USE_I18N = True/USE_I18N = False/g" data/alma9-c1-settings.py
sudo sed -i "s/'PASSWORD': '1mmSvDFl'/'PASSWORD': 'a2cpasswd'/g" data/alma9-c1-settings.py
docker exec alma9-c1 cp /tmp/acme2certifier/alma9-c1-settings.py /opt/acme2certifier/acme2certifier/settings.py
docker exec alma9-c1 sh -c "cd /opt/acme2certifier/ && python3 manage.py makemigrations && python3 manage.py migrate && python3 manage.py loaddata acme_srv/fixture/status.yaml"
docker exec alma9-c1 systemctl restart acme2certifier.service
cp .github/django_settings_mariadb.py data/alma9-c2-settings.py
sudo sed -i "s/mariadbsrv.acme/alma9-c2.acme/g" data/alma9-c2-settings.py
sudo sed -i "s/USE_I18N = True/USE_I18N = False/g" data/alma9-c2-settings.py
sudo sed -i "s/'PASSWORD': '1mmSvDFl'/'PASSWORD': 'a2cpasswd'/g" data/alma9-c2-settings.py
docker exec alma9-c2 cp /tmp/acme2certifier/alma9-c2-settings.py /opt/acme2certifier/acme2certifier/settings.py
docker exec alma9-c2 systemctl restart acme2certifier.service
- name: "Sleep for 5s"
uses: juliangruber/[email protected]
with:
time: 5s
- name: "Test acme2certifier on alma9-c1"
run: |
docker run -i --rm --network acme curlimages/curl -f http://alma9-c1.acme/directory
sudo rm -rf lego/
docker run -i -v $PWD/lego:/.lego/ --rm --name lego --network acme goacme/lego -s http://alma9-c1.acme -a --email "[email protected]" -d lego.local --http run
- name: "Test acme2certifier on alma9-c2"
run: |
docker run -i --rm --network acme curlimages/curl -f http://alma9-c2.acme/directory
sudo rm -rf lego/
docker run -i -v $PWD/lego:/.lego/ --rm --name lego --network acme goacme/lego -s http://alma9-c2.acme -a --email "[email protected]" -d lego.local --http run
- name: "Setup and test load-balancer"
run: |
docker run -d --rm --name acme-srv --network acme grindsa/pen:latest -r 80 alma9-c1.acme:80 alma9-c2.acme:80
docker run -i --rm --network acme curlimages/curl -f http://acme-srv.acme/directory
- name: "Create script for mass-testing"
run: |
cat <<EOF > data/mass_test.sh
#!/bin/bash
MAXCOUNTER=100
counter=1
echo "## Start mass-test ##"
until [ \$counter -gt \$MAXCOUNTER ]
do
echo "## Counter \${counter} ##"
sudo rm -rf \$PWD/acme-sh/*
sudo rm -rf \$PWD/lego/*
sudo rm -rf \$PWD/certbot/*
docker run -i -p 80:80 --rm --network acme --name=lego -v \$PWD/lego:/.lego/ goacme/lego -s http://acme-srv.acme -a --email "[email protected]" -d lego01.acme --http run > /dev/null
if [[ $? != 0 ]]; then break; fi
docker run -i -p 80:80 --rm --network acme --name=acme-sh -v \$PWD/acme-sh:/acme.sh neilpang/acme.sh:latest --issue --server http://acme-srv --accountemail '[email protected]' -d acme-sh.acme --standalone --force > /dev/null
if [[ $? != 0 ]]; then break; fi
docker run -i -p 80:80 --rm --network acme --name=certbot -v \$PWD/certbot:/etc/letsencrypt/ certbot/certbot certonly --server http://acme-srv.acme --agree-tos -m '[email protected]' --no-eff-email --standalone --preferred-challenges http -d certbot.acme --cert-name certbot > /dev/null
if [[ $? != 0 ]]; then break; fi
docker run -i -p 80:80 --rm --network acme --name=lego -v \$PWD/lego:/.lego/ goacme/lego -s http://acme-srv.acme -a --email "[email protected]" -d lego01.acme --http run > /dev/null
if [[ $? != 0 ]]; then break; fi
docker run -i -p 80:80 --rm --network acme --name=acme-sh -v \$PWD/acme-sh:/acme.sh neilpang/acme.sh:latest --issue --server http://acme-srv --accountemail '[email protected]' -d acme-sh.acme --standalone --output-insecure --force > /dev/null
if [[ $? != 0 ]]; then break; fi
docker run -i -p 80:80 --rm --network acme --name=certbot -v \$PWD/certbot:/etc/letsencrypt/ certbot/certbot certonly --server http://acme-srv.acme --agree-tos -m '[email protected]' --no-eff-email --standalone --preferred-challenges http -d certbot.acme --cert-name certbot > /dev/null
((counter++))
done
echo "## End mass-test ##"
echo \$counter
echo \$MAXCOUNTER
if [ \$counter -gt \$MAXCOUNTER ]
then
exit 0
else
exit 1
fi
EOF
chmod a+rx data/mass_test.sh
- name: "Sleep for 5s"
uses: juliangruber/[email protected]
with:
time: 5s
- name: "Run mass-test"
run: |
echo "## Run mass-test ##"
data/mass_test.sh
echo "## End mass-test ##"
- name: "[ * ] collecting test logs"
if: ${{ failure() }}
run: |
mkdir -p ${{ github.workspace }}/artifact/upload
docker exec alma9-c1 tar cvfz /tmp/acme2certifier/alma9-c1-a2c.tgz /opt/acme2certifier
docker exec alma9-c2 tar cvfz /tmp/acme2certifier/alma9-c2-a2c.tgz /opt/acme2certifier
sudo cp -rp data/ ${{ github.workspace }}/artifact/data/
docker exec alma9-c1 cat /var/log/messages > ${{ github.workspace }}/artifact/alma9-c1-messages.log
docker exec alma9-c2 cat /var/log/messages > ${{ github.workspace }}/artifact/alma9-c2-messages.log
docker exec alma9-c1 cat /var/log/lsyncd/lsyncd.log > ${{ github.workspace }}/artifact/alma9-c1-lsyncd.log
docker exec alma9-c2 cat /var/log/lsyncd/lsyncd.log > ${{ github.workspace }}/artifact/alma9-c2-lsyncd.log
sudo tar -C ${{ github.workspace }}/artifact/ -cvzf ${{ github.workspace }}/artifact/upload/artifact.tar.gz data alma9-c1-messages.log alma9-c2-messages.log alma9-c1-lsyncd.log alma9-c2-lsyncd.log
- name: "[ * ] uploading artificates"
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: ha_django_mariadb_tests.tar.gz
path: ${{ github.workspace }}/artifact/upload/