Skip to content
Snippets Groups Projects
gitlab-ci-2021.yml 1.51 KiB
Newer Older
Stefano Guerrini's avatar
Stefano Guerrini committed
image: ruby:3.1

stages:
  - build
  - deploy

variables:
  LC_ALL: C.UTF-8
  BUILD_DIR: public/
  CACHE_DIR: vendor/bundle/

.build:
  stage: build
  before_script:
    - apt-get update -qy
    - gem install bundler
    - cd web/
    - bundle config set --local path $CACHE_DIR
  script:
    - bundle exec jekyll build -d $BUILD_DIR --config $CONFIG
  artifacts:
    paths:
      - web/$BUILD_DIR
  cache:
    paths:
      - web/$CACHE_DIR

.deploy:
  stage: deploy
  variables:
  before_script:
    - apt-get update -qy
    - apt-get install -y lftp
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan $SFTP_HOST >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
    - cd web/
  script:
    - lftp -e "set sftp:auto-confirm yes;
               open sftp://$SFTP_HOST;
               user $SFTP_USER $SFTP_PASSWORD;
               mirror --exclude-glob .git*
                      --exclude .git/
                      --reverse
                      --verbose
                      --delete
                      $BUILD_DIR
                      $DEPLOY_DIR;
               bye"

build.dev:
  extends: .build
  variables:
    CONFIG: _config.yml,_config-dev.yml
  only:
    - web.dev

build.prod:
  extends: .build
  variables:
    CONFIG: _config.yml
    JEKYLL_ENV: production
  only:
    - web.prod

deploy.dev:
  extends: .deploy
  variables:
    DEPLOY_DIR: $DEV_DEPLOY_DIR
  only:
    - web.dev

deploy.prod:
  extends: .deploy
  variables:
    DEPLOY_DIR: $PROD_DEPLOY_DIR
  only:
    - web.prod