Usage
by Joel Aufrecht
This documentation refers to the setup of the OpenACS test-servers
of 2003. This setup was active probably around 5 years, and is
obsolete. Use regression testing of your local instance and Refer to a
CI/CD pipeline as presented at the OpenACS conference in 2022.
Here's the entire chain of code used to set up auto-rebuilding servers on test.openacs.org
The master server shows the status of all other servers. For test.openacs.org, it listens on port 80.
The acs-automated-testing parameter IsInstallReportServer is set to 1
The acs-automated-testing parameter XMLReportDir is set to /var/log/openacs-install. This is arbitrary - it just needs to be somewhere all the servers can write to.
For each server that will be monitored:
Suppose the first test server is service1. Set up a dedicated user and automated install script.
To run automated testing automatically each time the server is rebuilt, add this to /home/service1/install/install.tcl:
set do_tclapi_testing "yes"
Get the results of the automated tests dumped where the master server can see them - in this example, the same directory as above, /var/log/openacs-install, by adding this to install.tcl (requires 5.1):
set install_xml_file "/var/lib/aolserver/service0/packages/acs-core-docs/www/files/install-autotest.xml"
This will copy in the file install-autotest.xml:
example missing
which will, during install, configure that parameter in acs-automated-testing on the monitored server.
To enable the 'rebuild server' link, edit the file /usr/local/bin/rebuild-server.sh:
#!/bin/sh
# script to trigger a server rebuild
# hard-coding the valid server names here for some minimal security
case $1 in
service1) ;;
service2) ;;
"") echo "Usage: $0 servername"
exit;;
*) echo "$1 is not a permitted servername"
exit;;
esac
sudo /home/$1/install/install.sh 2>&1
and allow the master user to execute this file as root (this is a limitation of the automatic install script, which must be root). In /etc/sudoers, include a line:
master ALL = NOPASSWD: /usr/local/bin/rebuild-server.sh