Skip to content
Snippets Groups Projects
Commit 8ffd6908 authored by jurgenhaas's avatar jurgenhaas
Browse files

Merge branch 'feature/ci48' into develop

parents a0668ebf 4e71bddc
No related branches found
No related tags found
1 merge request!39Merging develop into main
......@@ -5,7 +5,7 @@ include:
variables:
VERSION: ${CI_COMMIT_TAG}
CI_VERSION: v2.2.15
CI_VERSION: v2.2.17
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
......
#!/bin/bash
if [[ -n $1 ]]; then
docker inspect ${1}_l3d | jq -r .[0].Config.Env | grep L3DHOSTDIR | cut -d'=' -f 2 | cut -d'"' -f 1
docker inspect ${1}_${USERNAME}_l3d | jq -r .[0].Config.Env | grep L3DHOSTDIR | cut -d'=' -f 2 | cut -d'"' -f 1
fi
#!/bin/bash
function getConfig() {
if [[ "$L3D_COMPOSE" != "[]" ]]; then
COMPOSE_PROJECT_NAME=$(yq .name $L3D_COMPOSE)
PHP_VERSION=$(yq .services.php.image $L3D_COMPOSE | cut -d':' -f 2)
rm "$L3D_COMPOSE"
fi
if [[ ! -n ${PHP_VERSION} ]]; then
while true; do
DEFAULT=8.1
......@@ -23,24 +28,6 @@ function getConfig() {
esac
done
fi
if [[ ! -n ${COMPOSER_DOWNGRADE} ]]; then
while true; do
DEFAULT=0
read -p "Do you want to downgrade Composer to version 1 - 0=No, 1=Yes? [No] " VALUE
if [[ "x$VALUE" == "x" ]]; then
COMPOSER_DOWNGRADE=$DEFAULT
else
COMPOSER_DOWNGRADE=$VALUE
fi
case ${COMPOSER_DOWNGRADE} in
0) break ;;
1) break ;;
no|NO|No) COMPOSER_DOWNGRADE=0 ;;
yes|YES|Yes) COMPOSER_DOWNGRADE=1 ;;
*) echo "Only 1 or 0 are valid responses." ;;
esac
done
fi
if [[ ! -n ${COMPOSE_PROJECT_NAME} ]]; then
DEFAULT=$(basename $WORKDIR)
read -p "Name your project (used as subdomain): [$DEFAULT]" VALUE
......@@ -64,9 +51,9 @@ function startContainer() {
if [[ $COMPOSE_PROJECT_NAME == "." ]]; then
mode=NONPRESISTENT
else
ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_l3d$)
ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
docker start ${COMPOSE_PROJECT_NAME}_l3d
docker start ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d
mode=REGULAR
fi
fi
......@@ -80,13 +67,17 @@ function startContainer() {
--env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
--env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}
--env PHP_VERSION=${PHP_VERSION}
--env SSH_AUTH_SOCK=${SSHAUTHSOCK}
--volume ${L3DDOCKERHOST}:/var/run/docker.sock
--volume ${WORKDIR}:/drupal
--volume ${SSHAUTH}:${SSHAUTHSOCK}
--volume ${HOMEDIR}:/home/${USERNAME}
--workdir /drupal
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSH_AUTH_SOCK=${SSHAUTHSOCK}
--volume ${SSHAUTH}:${SSHAUTHSOCK}
)
fi
if [[ ${L3DHOSTOS} != Darwin ]]; then
start_params+=(
--user ${USERID}:${GROUPID}
......@@ -107,7 +98,7 @@ function startContainer() {
start_params+=(
--hostname ${COMPOSE_PROJECT_NAME}-l3d
)
docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
docker run --name ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d -dt \
"${start_params[@]}" \
--restart unless-stopped \
registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION}
......@@ -116,8 +107,12 @@ function startContainer() {
--hostname "L3D"
--env HOMEDIR=${HOMEDIR}
--env WORKDIR=${WORKDIR}
--env SSHAUTH=${SSHAUTH}
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSHAUTH=${SSHAUTH}
)
fi
docker run -it --rm \
"${start_params[@]}" \
registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} \
......@@ -129,8 +124,12 @@ function startContainer() {
start_params=(
--env HOMEDIR=${HOMEDIR}
--env WORKDIR=${WORKDIR}
--env SSHAUTH=${SSHAUTH}
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSHAUTH=${SSHAUTH}
)
fi
if [[ "$PHP_VERSION" != "unknown" ]]; then
start_params+=(
--env PHP_VERSION=${PHP_VERSION}
......@@ -138,7 +137,7 @@ function startContainer() {
fi
docker exec -it \
"${start_params[@]}" \
${COMPOSE_PROJECT_NAME}_l3d \
${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d \
/usr/local/bin/.start
exitContainer
fi
......@@ -148,7 +147,7 @@ if [[ -n $1 ]]; then
if [[ "$1" == "." ]]; then
COMPOSE_PROJECT_NAME=.
else
ID=$(docker container ls --all -q -f name=^$1_l3d$)
ID=$(docker container ls --all -q -f name=^$1_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
PHP_VERSION=unknown
COMPOSE_PROJECT_NAME=$1
......
......@@ -4,7 +4,6 @@ GROUPID=$(id -g)
GROUPIDS=$(id -G)
L3DHOSTOS="$(uname -s)"
L3DDOCKERHOST=/var/run/docker.sock
SSHAUTH=${SSH_AUTH_SOCK}
SSHAUTHSOCK=/ssh-agent
USERID=$(id -u)
USERNAME=${USER}
......@@ -25,9 +24,11 @@ case "${L3DHOSTOS}" in
USERNAME=root
# This variable is used to access the ssh agent on MacOS.
SSHAUTHMAGICPATH="/run/host-services/ssh-auth.sock"
SSHAUTH=${SSHAUTHMAGICPATH}
SSHAUTHSOCK=${SSHAUTHMAGICPATH}
if [[ -f "/run/host-services/ssh-auth.sock" ]]; then
SSHAUTHMAGICPATH="/run/host-services/ssh-auth.sock"
SSH_AUTH_SOCK=${SSHAUTHMAGICPATH}
SSHAUTHSOCK=${SSHAUTHMAGICPATH}
fi
if [[ $? > 0 ]]; then
exit $?
fi
......@@ -80,7 +81,7 @@ fi
# Chenge directory to the existing project root, if available.
if [[ -n $1 ]]; then
ID=$(docker container ls --all -q -f name=^$1_l3d$)
ID=$(docker container ls --all -q -f name=^$1_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
cd $(docker exec ${ID} php /usr/local/bin/volume.php --none)
fi
......@@ -98,6 +99,11 @@ if [[ -f ".lakedrops.yml" ]]; then
L3D_CONFIG=/tmp/${RANDOM}.lakedrops.yml
docker cp .lakedrops.yml l3drun:$L3D_CONFIG >/dev/null 2>&1
fi
L3D_COMPOSE=[]
if [[ -f "docker-compose.yml" ]]; then
L3D_COMPOSE=/tmp/${RANDOM}-docker-compose.yml
docker cp docker-compose.yml l3drun:$L3D_COMPOSE >/dev/null 2>&1
fi
# Create project container parameters
project_params=(
......@@ -109,13 +115,18 @@ project_params=(
--env L3DSHELL=${L3DSHELL}
--env L3D_ALWAYS_CLEANUP=${L3D_ALWAYS_CLEANUP}
--env L3D_CONFIG=${L3D_CONFIG}
--env L3D_COMPOSE=${L3D_COMPOSE}
--env WORKDIR=${PWD}
--env SSHAUTH=${SSHAUTH}
--env SSHAUTHSOCK=${SSHAUTHSOCK}
--env PHP_VERSION=${PHP_VERSION}
--env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
--env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}
)
if [[ -n "$SSH_AUTH_SOCK" ]]; then
project_params+=(
--env SSHAUTH=${SSH_AUTH_SOCK}
--env SSHAUTHSOCK=${SSHAUTHSOCK}
)
fi
# Execute project container
docker exec -it \
......
......@@ -32,20 +32,22 @@ function restoreEnvFile {
if [[ "${COMPOSE_PROJECT_NAME}" == "." ]]; then
return
fi
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then
echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
fi
if [[ -n ${COMPOSER_DOWNGRADE} ]]; then
echo "COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}" >>.env
fi
if [[ -f ".env" ]]; then
# shellcheck disable=SC2046
# shellcheck disable=SC2094
# shellcheck disable=SC2002
env -i $(cat .env | xargs) >.env
if [[ -f ".env" && -w ".env" ]] || [[ ! -f ".env" && -w . ]]; then
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then
echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
fi
if [[ -n ${COMPOSER_DOWNGRADE} ]]; then
echo "COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}" >>.env
fi
if [[ -f ".env" ]]; then
# shellcheck disable=SC2046
# shellcheck disable=SC2094
# shellcheck disable=SC2002
env -i $(cat .env | xargs) >.env
fi
fi
}
......@@ -207,30 +209,36 @@ function initialSetup {
}
function setupAhoy {
if [[ ! -f .ahoy.yml ]]; then
if [[ ! -f .ahoy.yml && -w . ]]; then
echo "ahoyapi: v2" >.ahoy.yml
echo "commands:" >>.ahoy.yml
fi
if [[ ! -L .ahoy.l3d ]]; then
if [[ ! -L .ahoy.l3d && -w . ]]; then
ln -s /etc/ahoy .ahoy.l3d
fi
if [[ -f .gitignore ]]; then
EXISTING=$(cat .gitignore | grep "^/.ahoy.l3d$")
if [[ -z ${EXISTING} ]]; then
echo "/.ahoy.l3d" >>.gitignore
if [[ -f ".gitignore" && -w ".gitignore" ]] || [[ ! -f ".gitignore" && -w . ]]; then
echo "/.ahoy.l3d" >>.gitignore
fi
fi
fi
EXISTING=$(cat .ahoy.yml | grep "^ changelog:")
if [[ -z ${EXISTING} ]]; then
echo " changelog:" >>.ahoy.yml
echo " imports:" >>.ahoy.yml
echo " - ./.ahoy.l3d/changelog.yml" >>.ahoy.yml
echo " usage: Changelog tools." >>.ahoy.yml
if [[ -f ".ahoy.yml" && -w ".ahoy.yml" ]] || [[ ! -f ".ahoy.yml" && -w . ]]; then
EXISTING=$(cat .ahoy.yml | grep "^ changelog:")
if [[ -z ${EXISTING} ]]; then
echo " changelog:" >>.ahoy.yml
echo " imports:" >>.ahoy.yml
echo " - ./.ahoy.l3d/changelog.yml" >>.ahoy.yml
echo " usage: Changelog tools." >>.ahoy.yml
fi
fi
}
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
if [[ -f ".env" && -w ".env" ]] || [[ ! -f ".env" && -w . ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
fi
readEnv
# Validate PHP version
......@@ -242,7 +250,7 @@ if [[ "$INSTALLED_PHP_VERSION" != "$PHP_VERSION" ]]; then
if [[ "${COMPOSE_PROJECT_NAME}" != "." ]]; then
echo -e "\\033[31m Killed the outdated container, please start again !!! \\033[0m"
echo -e "\\033[31m ===================================================== \\033[0m"
docker rm -f ${COMPOSE_PROJECT_NAME}_l3d
docker rm -f ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d
fi
fi
if [[ "$COMPOSER_DOWNGRADE" == "1" ]]; then
......@@ -278,8 +286,8 @@ if [[ "${COMPOSE_PROJECT_NAME}" != "." ]]; then
echo "#!/bin/sh" > .git/hooks/post-checkout
chmod +x .git/hooks/post-checkout
fi
OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env'
NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_'${USERNAME}'_l3d /usr/local/bin/update-env'
NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_'${USERNAME}_'l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
OLD_HOOK_DEFINED=$(grep "$OLDCOMMAND" .git/hooks/post-checkout)
NEW_HOOK_DEFINED=$(grep "$NEWCOMMAND" .git/hooks/post-checkout)
if [[ "x$OLD_HOOK_DEFINED" = "x" ]]; then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment