Statik web siteleri daha hızlı yüklenir ve daha az saldırı yüzeyi sunar. Gitlab Pipline aracılığıyla bir CMS sayfasını nasıl dönüştürebileceğinizi gösteriyorum. İlk olarak, wget aracılığıyla statik bir kopya oluşturan bir derleme aşaması oluşturuyorum.
uild:
stage: build
when: always
only:
- master
script:
- mkdir static
- rm -r .git
- wget -k -K -E -r -l 10 -p -N -F --restrict-file-names=windows -nH http://wordpress-adresse/ -P static >> /dev/null 2>&1 || true
- find . -type f -exec sed -i 's#http://wordpress-adresse/#\//m#g' {} + >> /dev/null 2>&1
artifacts:
paths:
- static/
expire_in: 24 week
Sonuç veya statik eser 24 hafta boyunca arşivlenir ve boru hattı aracılığıyla herhangi bir zamanda dağıtılabilir.
Bir sonraki adımda, sonuç dağıtılabilir:
live:
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
stage: deploy
when: always
only:
- master
script:
- rsync -avuz -e 'ssh -p {-P Port wenn nötig} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' static/* user@www.domain.com:/path/to/www.domain.de/public/
Tamamdır! Bir kez daha tüm boru hattını (.gitlab_ci.yml) ekte bulabilirsiniz
stages:
- build
- deploy
build:
stage: build
when: always
only:
- master
script:
- mkdir static
- rm -r .git
- wget -k -K -E -r -l 10 -p -N -F --restrict-file-names=windows -nH http://wordpress-adresse/ -P static >> /dev/null 2>&1 || true
- find . -type f -exec sed -i 's#http://wordpress-adresse/#\//m#g' {} + >> /dev/null 2>&1
artifacts:
paths:
- static/
expire_in: 24 week
live:
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
stage: deploy
when: always
only:
- master
script:
- rsync -avuz -e 'ssh -p {-P Port wenn nötig} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' static/* user@www.domain.com:/path/to/www.domain.de/public/