improve CI
This commit is contained in:
parent
c6d973e126
commit
dca0f18cbb
1 changed files with 36 additions and 38 deletions
|
|
@ -4,6 +4,7 @@ stages:
|
|||
|
||||
variables:
|
||||
COMPOSER_ALLOW_SUPERUSER: '1'
|
||||
SSH_PORT: '2244'
|
||||
|
||||
build:
|
||||
stage: build
|
||||
|
|
@ -11,7 +12,7 @@ build:
|
|||
script:
|
||||
- apk add --no-cache nodejs npm
|
||||
- npm install
|
||||
- if [ "$CI_COMMIT_REF_NAME" = "dev" ]; then npm run build:preprod; else npm run build; fi
|
||||
- if [ "$CI_COMMIT_REF_NAME" = "preprod" ]; then npm run build:preprod; else npm run build; fi
|
||||
- cd dist
|
||||
- composer install --no-dev --optimize-autoloader --ignore-platform-req=ext-gd
|
||||
- cd ..
|
||||
|
|
@ -23,54 +24,51 @@ build:
|
|||
paths:
|
||||
- node_modules/
|
||||
|
||||
deploy:
|
||||
.deploy_script: &deploy_script |
|
||||
cd dist
|
||||
if [ ! -d "vendor" ]; then
|
||||
echo "Error: vendor/ not found in dist (composer install may have failed)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rsync_deploy() {
|
||||
local src=$1
|
||||
local dst=$2
|
||||
local exclude=$3
|
||||
cmd="sshpass -p \"$PASSWORD\" rsync -az --delete -O"
|
||||
[[ -n $exclude ]] && cmd="$cmd $exclude"
|
||||
cmd="$cmd -e 'ssh -p $SSH_PORT -o StrictHostKeyChecking=no' $src $USERNAME@$HOST:$dst"
|
||||
echo "$cmd"
|
||||
eval $cmd
|
||||
}
|
||||
|
||||
rsync_deploy site/ "$TARGET_PATH/site/" "--exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/'"
|
||||
rsync_deploy vendor/ "$TARGET_PATH/vendor/"
|
||||
rsync_deploy kirby/ "$TARGET_PATH/kirby/"
|
||||
rsync_deploy assets/ "$TARGET_PATH/assets/" "--exclude 'tiles/'"
|
||||
|
||||
deploy_prod:
|
||||
stage: deploy
|
||||
image: node:latest
|
||||
needs: ['build']
|
||||
only:
|
||||
- main
|
||||
before_script:
|
||||
- apt-get update -qq && apt-get install -y rsync sshpass
|
||||
script:
|
||||
- cd dist
|
||||
- |
|
||||
rsync_deploy() {
|
||||
local src=$1
|
||||
local dst=$2
|
||||
local exclude=$3
|
||||
cmd="sshpass -p \"$PASSWORD\" rsync -az --delete -O"
|
||||
[[ -n $exclude ]] && cmd="$cmd $exclude"
|
||||
cmd="$cmd -e 'ssh -p 2244 -o StrictHostKeyChecking=no' $src $USERNAME@$HOST:$dst"
|
||||
echo "$cmd"
|
||||
eval $cmd
|
||||
}
|
||||
- TARGET_PATH=$PROD_PATH bash -c "$DEPLOY_SCRIPT"
|
||||
variables:
|
||||
DEPLOY_SCRIPT: *deploy_script
|
||||
|
||||
rsync_deploy site/ "$PROD_PATH/site/" "--exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/'"
|
||||
rsync_deploy vendor/ "$PROD_PATH/vendor/"
|
||||
rsync_deploy kirby/ "$PROD_PATH/kirby/"
|
||||
rsync_deploy assets/ "$PROD_PATH/assets/" "--exclude 'tiles/'"
|
||||
|
||||
deploy_dev:
|
||||
deploy_preprod:
|
||||
stage: deploy
|
||||
image: node:latest
|
||||
needs: ['build']
|
||||
only:
|
||||
- dev
|
||||
- preprod
|
||||
before_script:
|
||||
- apt-get update -qq && apt-get install -y rsync sshpass
|
||||
script:
|
||||
- cd dist
|
||||
- |
|
||||
rsync_deploy() {
|
||||
local src=$1
|
||||
local dst=$2
|
||||
local exclude=$3
|
||||
cmd="sshpass -p \"$PASSWORD\" rsync -az --delete -O"
|
||||
[[ -n $exclude ]] && cmd="$cmd $exclude"
|
||||
cmd="$cmd -e 'ssh -p 2244 -o StrictHostKeyChecking=no' $src $USERNAME@$HOST:$dst"
|
||||
echo "$cmd"
|
||||
eval $cmd
|
||||
}
|
||||
|
||||
rsync_deploy site/ "$PREPROD_PATH/site/" "--exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/'"
|
||||
rsync_deploy vendor/ "$PREPROD_PATH/vendor/"
|
||||
rsync_deploy kirby/ "$PREPROD_PATH/kirby/"
|
||||
rsync_deploy assets/ "$PREPROD_PATH/assets/" "--exclude 'tiles/'"
|
||||
- TARGET_PATH=$PREPROD_PATH bash -c "$DEPLOY_SCRIPT"
|
||||
variables:
|
||||
DEPLOY_SCRIPT: *deploy_script
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue