gitlab-ci.yml (Source)

# Docker image
image: docker:latest
# So we can use Docker inside build script
services:
- docker:dind
# Task for GitHub Pages
pages:
  stage: deploy
  # cache composer data (especially useful if you set up Satis to download packages)
  cache:
    paths:
    - composer
  script:
  - if [ ! -d composer ]; then mkdir composer; fi
  # run satis from docker image
  - docker run --rm -i -v `pwd`:/build -v `pwd`/composer:/composer -e COMPOSER_AUTH="$COMPOSER_AUTH" composer/satis
  # gitlab requires directory to be named public for whatever reason
  - mv output public
  # artifacts for Pages
  artifacts:
    paths:
    - public
    # I don't like any garbage stored in the ci
    expire_in: 1w
  # do this only on master branch
  only:
  -  master