Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Pado
Asyst Moodle Plugin
Commits
e4b8276b
Commit
e4b8276b
authored
8 months ago
by
Artem Baranovskyi
Browse files
Options
Download
Email Patches
Plain Diff
Few PHPUnit infrastructural fixes.
parent
866f9a08
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
.env
+1
-0
.env
docker-compose.yml
+4
-0
docker-compose.yml
flask/Dockerfile
+1
-1
flask/Dockerfile
install_moodle.sh
+26
-11
install_moodle.sh
with
32 additions
and
12 deletions
+32
-12
.env
+
1
-
0
View file @
e4b8276b
...
@@ -9,6 +9,7 @@ MOODLE_DATABASE_USER=moodleuser
...
@@ -9,6 +9,7 @@ MOODLE_DATABASE_USER=moodleuser
MOODLE_DATABASE_PASSWORD=moodlepassword
MOODLE_DATABASE_PASSWORD=moodlepassword
MOODLE_BASE_DIR=/var/www/html/moodle
MOODLE_BASE_DIR=/var/www/html/moodle
MOODLE_BASE_DIR_DATA=/var/www/html/moodledata
MOODLE_BASE_DIR_DATA=/var/www/html/moodledata
MOODLE_PHPUNIT_DATAROOT=/var/www/html/phpunitdata
MOODLE_WWWROOT=https://www.moodle.loc
MOODLE_WWWROOT=https://www.moodle.loc
MOODLE_FULLNAME="Moodle LMS Site"
MOODLE_FULLNAME="Moodle LMS Site"
...
...
This diff is collapsed.
Click to expand it.
docker-compose.yml
+
4
-
0
View file @
e4b8276b
...
@@ -33,6 +33,7 @@ services:
...
@@ -33,6 +33,7 @@ services:
-
MOODLE_DATABASE_NAME=${MOODLE_DATABASE_NAME}
-
MOODLE_DATABASE_NAME=${MOODLE_DATABASE_NAME}
-
MOODLE_DATABASE_USER=${MOODLE_DATABASE_USER}
-
MOODLE_DATABASE_USER=${MOODLE_DATABASE_USER}
-
MOODLE_DATABASE_PASSWORD=${MOODLE_DATABASE_PASSWORD}
-
MOODLE_DATABASE_PASSWORD=${MOODLE_DATABASE_PASSWORD}
-
MOODLE_PHPUNIT_DATAROOT=${MOODLE_PHPUNIT_DATAROOT}
ports
:
ports
:
-
80:80
-
80:80
-
443:443
-
443:443
...
@@ -46,6 +47,7 @@ services:
...
@@ -46,6 +47,7 @@ services:
-
${PWD}/asystgrade:${MOODLE_BASE_DIR}/local/asystgrade
# Sync the plugin folder with the container
-
${PWD}/asystgrade:${MOODLE_BASE_DIR}/local/asystgrade
# Sync the plugin folder with the container
-
moodle_data:${MOODLE_BASE_DIR}
# Volume for Moodle
-
moodle_data:${MOODLE_BASE_DIR}
# Volume for Moodle
-
moodledata:${MOODLE_BASE_DIR_DATA}
# Volume for Moodle data
-
moodledata:${MOODLE_BASE_DIR_DATA}
# Volume for Moodle data
-
moodle_phpunit_data:${MOODLE_PHPUNIT_DATAROOT}
networks
:
networks
:
-
network
# Adding the network communication between containers
-
network
# Adding the network communication between containers
...
@@ -76,6 +78,8 @@ volumes: # Defining local volumes
...
@@ -76,6 +78,8 @@ volumes: # Defining local volumes
driver
:
local
driver
:
local
flask
:
flask
:
driver
:
local
driver
:
local
moodle_phpunit_data
:
driver
:
local
networks
:
networks
:
network
:
# Creating a network
network
:
# Creating a network
\ No newline at end of file
This diff is collapsed.
Click to expand it.
flask/Dockerfile
+
1
-
1
View file @
e4b8276b
...
@@ -15,7 +15,7 @@ COPY . /app
...
@@ -15,7 +15,7 @@ COPY . /app
COPY
./asyst /app/asyst
COPY
./asyst /app/asyst
# Installing dependencies
# Installing dependencies
RUN
/opt/myenv/bin/pip
install
--no-cache-dir
-i
https://pypi.tuna.tsinghua.edu.cn/simple
-r
/app/requirements.txt
RUN
/opt/myenv/bin/pip
install
-r
/app/requirements.txt
RUN
/opt/myenv/bin/python3
-m
pip
install
--upgrade
setuptools wheel
RUN
/opt/myenv/bin/python3
-m
pip
install
--upgrade
setuptools wheel
...
...
This diff is collapsed.
Click to expand it.
install_moodle.sh
+
26
-
11
View file @
e4b8276b
...
@@ -17,12 +17,17 @@ docker-compose exec moodle mkdir -p ${MOODLE_BASE_DIR_DATA}/temp
...
@@ -17,12 +17,17 @@ docker-compose exec moodle mkdir -p ${MOODLE_BASE_DIR_DATA}/temp
docker-compose
exec
moodle
mkdir
-p
${
MOODLE_BASE_DIR_DATA
}
/trashdir
docker-compose
exec
moodle
mkdir
-p
${
MOODLE_BASE_DIR_DATA
}
/trashdir
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR_DATA
}
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR_DATA
}
docker-compose
exec
moodle
chmod
-R
775
${
MOODLE_BASE_DIR_DATA
}
docker-compose
exec
moodle
chmod
-R
775
${
MOODLE_BASE_DIR_DATA
}
# Ensure correct ownership and permissions after installation
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR
}
docker-compose
exec
moodle
chmod
-R
755
${
MOODLE_BASE_DIR
}
docker-compose
exec
moodle
mkdir
-p
${
MOODLE_PHPUNIT_DATAROOT
}
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_PHPUNIT_DATAROOT
}
docker-compose
exec
moodle
chmod
-R
755
${
MOODLE_PHPUNIT_DATAROOT
}
# Install Moodle
# Install Moodle
sleep
5
sleep
5
docker-compose
exec
moodle php
${
MOODLE_BASE_DIR
}
/admin/cli/install.php
\
docker-compose
exec
moodle php
${
MOODLE_BASE_DIR
}
/admin/cli/install.php
\
--wwwroot
=
"
${
MOODLE_WWWROOT
}
"
\
--wwwroot
=
"
${
MOODLE_WWWROOT
}
"
\
--phpunit_dataroot
=
"
${
MOODLE_WWWROOT
}
"
\
--dataroot
=
"
${
MOODLE_BASE_DIR_DATA
}
"
\
--dataroot
=
"
${
MOODLE_BASE_DIR_DATA
}
"
\
--dbtype
=
"mariadb"
\
--dbtype
=
"mariadb"
\
--dbname
=
"
${
MOODLE_DATABASE_NAME
}
"
\
--dbname
=
"
${
MOODLE_DATABASE_NAME
}
"
\
...
@@ -35,6 +40,10 @@ docker-compose exec moodle php ${MOODLE_BASE_DIR}/admin/cli/install.php \
...
@@ -35,6 +40,10 @@ docker-compose exec moodle php ${MOODLE_BASE_DIR}/admin/cli/install.php \
--agree-license
\
--agree-license
\
--non-interactive
--non-interactive
# Add phpunit_dataroot & phpunit_prefix to config.php
docker-compose
exec
moodle bash
-c
"echo '
\$
CFG->phpunit_dataroot =
\"
${
MOODLE_PHPUNIT_DATAROOT
}
\"
;' >>
${
MOODLE_BASE_DIR
}
/config.php"
docker-compose
exec
moodle bash
-c
"echo '
\$
CFG->phpunit_prefix =
\"
phpu_
\"
;' >>
${
MOODLE_BASE_DIR
}
/config.php"
# Check if database backup exists and restore it if it does
# Check if database backup exists and restore it if it does
BACKUP_FILE
=
"moodle/moodle_backup.sql"
BACKUP_FILE
=
"moodle/moodle_backup.sql"
if
[
-f
"
$BACKUP_FILE
"
]
;
then
if
[
-f
"
$BACKUP_FILE
"
]
;
then
...
@@ -57,21 +66,26 @@ docker-compose exec moodle bash -c "
...
@@ -57,21 +66,26 @@ docker-compose exec moodle bash -c "
php -r
\"
copy('https://getcomposer.org/installer', 'composer-setup.php');
\"
&&
php -r
\"
copy('https://getcomposer.org/installer', 'composer-setup.php');
\"
&&
php composer-setup.php --install-dir=/usr/local/bin --filename=composer &&
php composer-setup.php --install-dir=/usr/local/bin --filename=composer &&
php -r
\"
unlink('composer-setup.php');
\"
&&
php -r
\"
unlink('composer-setup.php');
\"
&&
cd
/
app &&
cd app &&
/usr/local/bin/composer install --no-interaction --no-plugins --no-scripts --no-dev --prefer-dist &&
/usr/local/bin/composer install --no-interaction --no-plugins --no-scripts --no-dev --prefer-dist &&
/usr/local/bin/composer dump-autoload
/usr/local/bin/composer dump-autoload
"
"
# Next, configure PHPUnit for Moodle:
# Next, configure PHPUnit for Moodle:
docker-compose
exec
moodle php admin/tool/phpunit/cli/init.php
docker-compose
exec
moodle php admin/tool/phpunit/cli/init.php
# Define the path to the phpunit.xml file
# Define the path to the phpunit.xml file
PHPUNIT_XML_PATH
=
"/var/www/html/moodle/phpunit.xml"
PHPUNIT_XML_PATH
=
"/var/www/html/moodle/phpunit.xml"
# Define the content to insert for your plugin's test suite
# Define the content to insert for your plugin's test suite
TEST_SUITE_ENTRY
=
'<testsuite name="Unit Tests">
TEST_SUITE_ENTRY
=
'<testsuite name="Unit Tests">\n <directory>local/asystgrade/tests</directory>\n</testsuite>'
<directory>local/asystgrade/tests</directory>
</testsuite>'
# Check if phpunit.xml exists
if
[
-f
"
$PHPUNIT_XML_PATH
"
]
;
then
echo
"
$PHPUNIT_XML_PATH
exists."
else
echo
"
$PHPUNIT_XML_PATH
does not exist."
fi
# Check if the plugin suite is already defined in phpunit.xml
# Check if the plugin suite is already defined in phpunit.xml
if
grep
-q
"local/asystgrade/tests"
"
$PHPUNIT_XML_PATH
"
;
then
if
grep
-q
"local/asystgrade/tests"
"
$PHPUNIT_XML_PATH
"
;
then
...
@@ -82,10 +96,6 @@ else
...
@@ -82,10 +96,6 @@ else
echo
"Test suite for asystgrade plugin added to phpunit.xml."
echo
"Test suite for asystgrade plugin added to phpunit.xml."
fi
fi
# Ensure correct ownership and permissions after installation
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR
}
docker-compose
exec
moodle
chmod
-R
755
${
MOODLE_BASE_DIR
}
# Set correct access rules for the plugin
# Set correct access rules for the plugin
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR
}
/local/asystgrade
docker-compose
exec
moodle
chown
-R
www-data:www-data
${
MOODLE_BASE_DIR
}
/local/asystgrade
docker-compose
exec
moodle
chmod
-R
775
${
MOODLE_BASE_DIR
}
/local/asystgrade
docker-compose
exec
moodle
chmod
-R
775
${
MOODLE_BASE_DIR
}
/local/asystgrade
...
@@ -105,4 +115,9 @@ docker-compose exec flask chmod +x /usr/local/bin/run_sag
...
@@ -105,4 +115,9 @@ docker-compose exec flask chmod +x /usr/local/bin/run_sag
docker-compose
exec
flask /usr/local/bin/run_sag
docker-compose
exec
flask /usr/local/bin/run_sag
# Adding cron-record at the Moodle container
# Adding cron-record at the Moodle container
docker-compose
exec
-u
root moodle bash
-c
"echo '* * * * * /usr/bin/php
${
MOODLE_BASE_DIR
}
/admin/cli/cron.php >/dev/null 2>&1' >> /etc/crontabs/root && crontab /etc/crontabs/root"
docker-compose
exec
-u
root moodle bash
-c
"
mkdir -p /etc/crontabs &&
touch /etc/crontabs/root &&
echo '* * * * * /usr/bin/php
${
MOODLE_BASE_DIR
}
/admin/cli/cron.php >/dev/null 2>&1' >> /etc/crontabs/root &&
crontab /etc/crontabs/root
"
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment