Bila anda menggunakan MkDocs dan hosting di Gitlab bisa memanfaatkan Gitlab CI untuk deploy otomatis ke server anda. Buat .gitlab-ci.yml di repository anda, disini saya menggunakan branch master.

image: debian:latest
before_script:
  - apt-get update -yqq
  - mkdir -p ~/.ssh
  - echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
  - chmod 600 ~/.ssh/id_rsa
  - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
  - apt-get install mkdocs wget rsync openssh-server -yqq
  - apt-get install python3-pip -yqq
  - pip3 install -qqq mkdocs-material
 
build-mkdocs:
  script:
    - cd ..
    - echo -e "
        site_url: https://docs.jaranguda.com 
        site_name: Catatan Lapaktrip
        docs_dir: docs 
        theme: 
            name: 'material'" > mkdocs.yml
    - mkdocs build
    - rsync -4 -av --delete site/ tommy@docs.jaranguda.com:/var/www/docs.jaranguda.com/

Bila anda menggunakan banyak repository bisa memilih hanya satu branch saja yang otomatis di deploy dengan menambahkan

  only:
    - development

di .gitlab-ci.yml

variabel $SSH_PRIVATE_KEY diatas di tambahhkan dari repository di gitlab. Setting -> CI/CD -> Variables
gitlab variables

untuk mengupload file mkdocs kita akan menggunakan rsync. Cara diatas menggunakan public key, bila anda menggunakan password, install sshpass terlebih dahulu.

Leave a comment

Your email address will not be published. Required fields are marked *