authelia/.travis.yml

131 lines
3.6 KiB
YAML
Raw Normal View History

language: go
2019-11-07 07:59:24 +07:00
required: sudo
2019-11-07 07:59:24 +07:00
go:
2019-11-30 23:49:52 +07:00
- "1.13"
2019-11-07 07:59:24 +07:00
2016-12-18 03:57:09 +07:00
services:
2019-11-07 07:59:24 +07:00
- docker
addons:
chrome: stable
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
2019-11-30 23:49:52 +07:00
install:
- export PATH=$PATH:./cmd/authelia-scripts/:/tmp
- source bootstrap.sh
2019-11-07 07:59:24 +07:00
jobs:
include:
2019-11-30 23:49:52 +07:00
- stage: build & test
before_script:
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
- nvm install v12 && nvm use v12
2019-12-04 14:41:59 +07:00
- go mod download
2019-11-07 07:59:24 +07:00
script:
- authelia-scripts --log-level debug ci
2019-11-30 23:49:52 +07:00
# Run all suites in a dedicated container
- &e2e-test
stage: end-to-end suite tests
env:
- SUITE_NAME=BypassAll
before_script:
# Install chrome driver
2019-12-04 14:41:59 +07:00
# TODO(c.michaud): this could be done in authelia-scripts instead for devs to not do the install themselves.
# or even provide a docker image with a selenium server.
2019-11-30 23:49:52 +07:00
- 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/bin/chromedriver
- sudo chmod +x /usr/bin/chromedriver
- sudo ln -s /usr/bin/google-chrome-stable /usr/bin/chromium-browser
2019-12-04 14:41:59 +07:00
- go mod download
2019-11-30 23:49:52 +07:00
script:
# Run the suite
- authelia-scripts --log-level debug suites test $SUITE_NAME --headless
2019-11-30 23:49:52 +07:00
# TODO(c.michaud): check if all suites are listed based on `authelia-scripts suites list` command.
- <<: *e2e-test
env:
- SUITE_NAME=Docker
- <<: *e2e-test
env:
- SUITE_NAME=DuoPush
- <<: *e2e-test
env:
- SUITE_NAME=HighAvailability
- <<: *e2e-test
env:
- SUITE_NAME=Kubernetes
- <<: *e2e-test
env:
- SUITE_NAME=LDAP
- <<: *e2e-test
env:
- SUITE_NAME=Mariadb
- <<: *e2e-test
env:
- SUITE_NAME=NetworkACL
- <<: *e2e-test
env:
- SUITE_NAME=Postgres
- <<: *e2e-test
env:
- SUITE_NAME=ShortTimeouts
- <<: *e2e-test
env:
- SUITE_NAME=Standalone
- <<: *e2e-test
env:
- SUITE_NAME=Traefik
2019-11-07 07:59:24 +07:00
- &build-images
stage: build images
if: branch = "master" && type != "pull_request" || branch =~ /^v/
2019-11-07 07:59:24 +07:00
env:
- ARCH=amd64
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 authelia/authelia:${TRAVIS_TAG:1}-$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
- sha256sum authelia-linux-$ARCH.tar.gz > authelia-linux-$ARCH.tar.gz.sha256
deploy:
provider: releases
2019-11-30 23:49:52 +07:00
api_key: "$GITHUB_API_KEY"
file_glob: true
file: "authelia-linux-$ARCH.tar.gz*"
skip_cleanup: true
on:
tags: true
2019-11-07 07:59:24 +07:00
- <<: *build-images
env:
- ARCH=arm32v7
- <<: *build-images
env:
- ARCH=arm64v8
- stage: deploy manifests
if: branch = "master" && type != "pull_request" || branch =~ /^v/
2019-11-07 07:59:24 +07:00
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
script:
- authelia-scripts docker push-manifest
2016-12-18 03:57:09 +07:00
notifications:
email:
recipients:
2019-11-07 07:59:24 +07:00
- clement.michaud34@gmail.com
2016-12-18 03:57:09 +07:00
on_success: change
on_failure: always