This commit is contained in:
Tristan Darricau 2025-05-02 07:16:08 +00:00 committed by GitHub
commit 169de8432f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 293 additions and 0 deletions

View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
export IMAGES_TAG=${bamboo_images_tag}
export WORKING_DIR=${bamboo_working_directory}
export PR_NUMBER=${bamboo_PRnumber}
export GITHUB_TOKEN=${bamboo_github_token_password}
export COMPOSER_HOME=${bamboo_composer_home}
export BUILD_RESULT_URL=${bamboo_buildResultsUrl}

View file

@ -0,0 +1,32 @@
#!/usr/bin/env bash
export PHPBB_TEST_DBMS='phpbb\db\driver\mysqli'
export PHPBB_TEST_DBHOST='mysql'
export PHPBB_TEST_DBPORT='3306'
export PHPBB_TEST_DBNAME='phpbb_tests'
export PHPBB_TEST_DBUSER='root'
export PHPBB_TEST_DBPASSWD=''
export PHPBB_TEST_TABLE_PREFIX='phpbb_'
export DOCKER_LINK='--link mysql:mysql'
function start_db {
cat <<EOL > /tmp/phpbb.cnf
[mysqld]
default-storage-engine=MyISAM
default-tmp-storage-engine=MyISAM
tmpdir=/dev/shm/
datadir=/dev/shm/
EOL
docker run \
-d \
--volume /tmp/phpbb.cnf:/etc/mysql/conf.d/phpbb.cnf \
--name mysql \
--shm-size=256M \
--env MYSQL_ROOT_PASSWORD='' \
--env MYSQL_DATABASE='phpbb_tests' \
--env MYSQL_ALLOW_EMPTY_PASSWORD='yes' \
mysql
docker run --rm --link mysql:mysql waisbrot/wait
}

View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
export PHPBB_TEST_DBMS='phpbb\db\driver\oracle'
export PHPBB_TEST_DBHOST='oracle'
export PHPBB_TEST_DBPORT='1521'
export PHPBB_TEST_DBNAME='xe'
export PHPBB_TEST_DBUSER='system'
export PHPBB_TEST_DBPASSWD='oracle'
export PHPBB_TEST_TABLE_PREFIX='phpbb_'
export DOCKER_LINK='--link oracle:oracle'
function start_db {
docker run -d --name oracle wnameless/oracle-xe-11g
docker run --rm --link oracle:oracle -e TARGETS=oracle:1521 waisbrot/wait
}

View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
export PHPBB_TEST_DBMS='phpbb\db\driver\postgres'
export PHPBB_TEST_DBHOST='postgres'
export PHPBB_TEST_DBPORT='5432'
export PHPBB_TEST_DBNAME='phpbb_tests'
export PHPBB_TEST_DBUSER='postgres'
export PHPBB_TEST_DBPASSWD=''
export PHPBB_TEST_TABLE_PREFIX='phpbb_'
export DOCKER_LINK='--link postgres:postgres'
function start_db {
docker run \
-d \
--name postgres \
--env POSTGRES_PASSWORD='' \
--env POSTGRES_USER='postgres' \
postgres
docker run --rm --link postgres:postgres waisbrot/wait
sleep 1
docker run --link postgres:postgres --rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres -c "create database phpbb_tests;"'
}

View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
export PHPBB_TEST_DBMS='phpbb\db\driver\sqlite3'
export PHPBB_TEST_DBHOST='/dev/shm/phpbb_unit_tests.sqlite3'
export PHPBB_TEST_DBPORT=''
export PHPBB_TEST_DBNAME=''
export PHPBB_TEST_DBUSER=''
export PHPBB_TEST_DBPASSWD=''
export PHPBB_TEST_TABLE_PREFIX='phpbb_'
export DOCKER_LINK=''
function start_db {
true
}

View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--workdir /data \
phpbb/build${IMAGES_TAG} sh -c '
git config user.email "no-reply@phpbb.com" &&
git config user.name "phpBB CI" &&
git remote set-url origin "https://github.com/phpbb/phpbb.git" &&
git fetch origin +refs/pull/'${PR_NUMBER}'/merge &&
git checkout FETCH_HEAD'

View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
cat <<EOL > generate-archive.sh
git remote set-url origin "https://github.com/phpbb/phpbb.git"
git fetch origin +refs/pull/${PR_NUMBER}/head
last_commit=\$(git rev-parse FETCH_HEAD)
echo "\$last_commit" > build/logs/last_commit
tar --exclude-backups --exclude-vcs --exclude='.git' --exclude='generate-archive.sh' -p -c -z -f source_code.tar.gz *
EOL
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--workdir /data \
phpbb/build${IMAGES_TAG} sh generate-archive.sh
rm generate-archive.sh

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Ensure the github oauth token is set
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--volume ${COMPOSER_HOME}:/composer/ \
--workdir /data \
phpbb/build${IMAGES_TAG} sh -c "COMPOSER_HOME=/composer php composer.phar config -g github-oauth.github.com ${GITHUB_TOKEN}"
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--volume ${COMPOSER_HOME}:/composer/ \
--workdir /data \
phpbb/build${IMAGES_TAG} sh -c '
git config user.email "no-reply@phpbb.com" &&
git config user.name "phpBB CI" &&
cd phpBB &&
COMPOSER_HOME=/composer php ../composer.phar install --dev'
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--workdir /data \
phpbb/build${IMAGES_TAG} sh -c 'cd build; ../phpBB/vendor/bin/phing clean prepare'

View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# We assume the docker daemon is dedicated to the current job (the jobs runs on isolated docker daemon)
# Stop running containers
for container in $(docker ps -q)
do
docker stop $container || true
done
# Removing containers
for container in $(docker ps -a -q)
do
docker rm -v $container || true
done

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--workdir /data \
debian tar -p -x -z -f source_code.tar.gz

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
pwd=$(dirname "$0")
db=$1
php=$2
. ${pwd}/../db/${db}.sh
start_db
docker run \
--env TEST_UID=$(id -u) \
--env TEST_GID=$(id -g) \
${DOCKER_LINK} \
--env PHPBB_TEST_DBMS="${PHPBB_TEST_DBMS}" \
--env PHPBB_TEST_DBHOST="${PHPBB_TEST_DBHOST}" \
--env PHPBB_TEST_DBPORT="${PHPBB_TEST_DBPORT}" \
--env PHPBB_TEST_DBNAME="${PHPBB_TEST_DBNAME}" \
--env PHPBB_TEST_DBUSER="${PHPBB_TEST_DBUSER}" \
--env PHPBB_TEST_DBPASSWD="${PHPBB_TEST_DBPASSWD}" \
--env PHPBB_TEST_TABLE_PREFIX="${PHPBB_TEST_TABLE_PREFIX}" \
--env PHPBB_FUNCTIONAL_URL="http://localhost/" \
--volume ${WORKING_DIR}:/data \
--workdir /data \
phpbb/php-ft-${php}-${db}${IMAGES_TAG} php -d memory_limit=-1 phpBB/vendor/bin/phpunit --group functional --log-junit build/logs/phpunit.xml

11
docker/scripts/jobs/sniffer.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
docker run \
--user $(id -u):$(id -g) \
--volume ${WORKING_DIR}:/data \
--workdir /data \
php:5.6 sh -c '
cd build &&
../phpBB/vendor/bin/phing sniff &&
echo 0 > logs/sniffs_res ||
echo 1 > logs/sniffs_res'

View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
pwd=$(dirname "$0")
db=$1
php=$2
. ${pwd}/../db/${db}.sh
start_db
docker run \
--user $(id -u):$(id -g) \
${DOCKER_LINK} \
--env PHPBB_TEST_DBMS="${PHPBB_TEST_DBMS}" \
--env PHPBB_TEST_DBHOST="${PHPBB_TEST_DBHOST}" \
--env PHPBB_TEST_DBPORT="${PHPBB_TEST_DBPORT}" \
--env PHPBB_TEST_DBNAME="${PHPBB_TEST_DBNAME}" \
--env PHPBB_TEST_DBUSER="${PHPBB_TEST_DBUSER}" \
--env PHPBB_TEST_DBPASSWD="${PHPBB_TEST_DBPASSWD}" \
--env PHPBB_TEST_TABLE_PREFIX="${PHPBB_TEST_TABLE_PREFIX}" \
--volume ${WORKING_DIR}:/data \
--workdir /data \
phpbb/php-ut-${php}-${db}${IMAGES_TAG} php -d memory_limit=-1 phpBB/vendor/bin/phpunit --group __nogroup__ --log-junit build/logs/phpunit.xml

View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
export IMAGES_TAG=':latest'
export WORKING_DIR="$(git rev-parse --show-toplevel)"
export PR_NUMBER=''
export GITHUB_TOKEN="$(cd "$WORKING_DIR"/phpBB;php ../composer.phar config github-oauth.github.com)"
export COMPOSER_HOME="$(cd "$WORKING_DIR"/phpBB;php ../composer.phar config home)"
export BUILD_RESULT_URL=''

View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
if [ -s build/logs/phpunit.xml ]; then
res=$(cat build/logs/sniffs_res 2>/dev/null)
if ( grep 'failures="[^0]"' build/logs/phpunit.xml ); then
res=1
elif ( grep 'errors="[^0]"' build/logs/phpunit.xml ); then
res=2
else
res=0
fi
else
res=2
fi
echo ${res}

View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
last_commit=$(cat build/logs/last_commit)
result_file=$1
step=$2
if [ -s build/logs/${result_file} ]; then
res=$(cat build/logs/${result_file} 2>/dev/null)
else
res=2
fi
if [ $res -eq 0 ]; then
echo Send success
$(dirname "$0")/set-status.sh 'success' 'The Bamboo build is a success' "${step}"
elif [ $res -eq 1 ]; then
echo Send Failure
$(dirname "$0")/set-status.sh 'failure' 'The Bamboo build failed' "${step}"
else
echo Send error
$(dirname "$0")/set-status.sh 'error' 'The Bamboo build is in error' "${step}"
fi

View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
last_commit=$(cat build/logs/last_commit)
status=$1
description=$2
step=$3
env
echo '---------------------'
echo curl -H "Authorization: token ${GITHUB_TOKEN}" --request POST --data "{\"state\": \"${status}\", \"description\": \"${description}\", \"target_url\": \"${BUILD_RESULT_URL}\", \"context\": \"phpBB continuous integration - ${step}\"}" https://api.github.com/repos/phpbb/phpbb/statuses/${last_commit}
echo '---------------------'
curl -H "Authorization: token ${GITHUB_TOKEN}" --request POST --data "{\"state\": \"${status}\", \"description\": \"${description}\", \"target_url\": \"${BUILD_RESULT_URL}\", \"context\": \"phpBB continuous integration - ${step}\"}" https://api.github.com/repos/phpbb/phpbb/statuses/${last_commit}