authelia/.travis.yml
Amir Zarrinkafsh 41913360be Optimise deploy steps for Github releases (#468)
Signed-off-by: Amir Zarrinkafsh <nightah@me.com>
2019-12-02 20:46:27 +01:00

84 lines
2.2 KiB
YAML

language: go
required: sudo
go:
- '1.13'
services:
- docker
- ntp
- xvfb
addons:
chrome: stable
apt:
sources:
- google-chrome
packages:
- libgif-dev
- google-chrome-stable
install: # Install ChromeDriver (64bits; replace 64 with 32 for 32bits).
- wget -N https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip -P ~/
- unzip ~/chromedriver_linux64.zip -d ~/
- rm ~/chromedriver_linux64.zip
- sudo mv -f ~/chromedriver /usr/local/share/
- sudo chmod +x /usr/local/share/chromedriver
- sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
before_script:
- export PATH=./cmd/authelia-scripts/:/tmp:$PATH
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
- nvm install v11 && nvm use v11 && npm i
- source bootstrap.sh
jobs:
include:
- stage: test
script:
- authelia-scripts --log-level debug ci
- &build-images
stage: build images
env:
- ARCH=amd64
install: skip
script:
- while sleep 9m; do echo '===== Prevent build from terminating ====='; done &
- authelia-scripts docker build --arch=$ARCH
- kill %1
after_success:
- authelia-scripts docker push-image --arch=$ARCH
before_deploy:
- docker create --name authelia-binary clems4ever/authelia:$TRAVIS_TAG-$ARCH
- docker cp authelia-binary:/usr/app/authelia ./authelia-linux-$ARCH
- docker cp authelia-binary:/usr/app/public_html ./
- tar -czf authelia-linux-$ARCH.tar.gz authelia-linux-$ARCH public_html
deploy:
provider: releases
api_key: '$GITHUB_API_KEY'
file_glob: true
file: 'authelia-linux-$ARCH.tar.gz'
skip_cleanup: true
on:
tags: true
- <<: *build-images
env:
- ARCH=arm32v7
- <<: *build-images
env:
- ARCH=arm64v8
- stage: deploy manifests
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
install: skip
script:
- authelia-scripts docker push-manifest
notifications:
email:
recipients:
- clement.michaud34@gmail.com
on_success: change
on_failure: always