2019-08-04 07:10:32 -07:00
|
|
|
dist: bionic
|
|
|
|
|
2019-08-09 10:28:04 -07:00
|
|
|
jobs:
|
|
|
|
include:
|
|
|
|
- stage: build
|
2019-09-23 15:20:10 -07:00
|
|
|
# TODO: Shallowly clone again once the .git folder is no longer required for building
|
|
|
|
git:
|
|
|
|
depth: false
|
2019-08-09 10:28:04 -07:00
|
|
|
language: crystal
|
|
|
|
crystal: latest
|
|
|
|
before_install:
|
|
|
|
- shards update
|
|
|
|
- shards install
|
|
|
|
install:
|
2019-09-23 15:19:18 -07:00
|
|
|
- crystal build --warnings all --error-on-warnings src/invidious.cr
|
2019-08-09 10:28:04 -07:00
|
|
|
script:
|
|
|
|
- crystal tool format --check
|
|
|
|
- crystal spec
|
2019-08-04 07:10:32 -07:00
|
|
|
|
2019-08-09 10:28:04 -07:00
|
|
|
- stage: build_docker
|
2019-09-23 15:20:10 -07:00
|
|
|
# TODO: Shallowly clone again once the .git folder is no longer required for building
|
|
|
|
git:
|
|
|
|
depth: false
|
2019-08-09 10:28:04 -07:00
|
|
|
language: minimal
|
|
|
|
services:
|
|
|
|
- docker
|
|
|
|
install:
|
|
|
|
- docker-compose build
|
|
|
|
script:
|
docker: do not require password for PostgreSQL superuser, docker,kubernetes: create "privacy" type before using it, travis: do not run "docker-compose up" in detached mode (#1042)
* docker: do not require password for PostgreSQL superuser
A password is now required by the postgres Docker image which makes
initial setup (and our CI build) fail with the following error:
postgres_1 | Error: Database is uninitialized and superuser password is not specified.
postgres_1 | You must specify POSTGRES_PASSWORD for the superuser. Use
postgres_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run".
postgres_1 |
postgres_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections
postgres_1 | without a password. This is *not* recommended. See PostgreSQL
postgres_1 | documentation about "trust":
postgres_1 | https://www.postgresql.org/docs/current/auth-trust.html
See https://github.com/docker-library/postgres/issues/681.
* docker,kubernetes: create PostgreSQL "privacy" type before using it
Fixes the following error when setting up the database:
postgres_1 | 2020-02-21 01:01:22.371 UTC [172] ERROR: type "privacy" does not exist at character 200
postgres_1 | 2020-02-21 01:01:22.371 UTC [172] STATEMENT: CREATE TABLE public.playlists
postgres_1 | (
postgres_1 | title text,
postgres_1 | id text primary key,
postgres_1 | author text,
postgres_1 | description text,
postgres_1 | video_count integer,
postgres_1 | created timestamptz,
postgres_1 | updated timestamptz,
postgres_1 | privacy privacy,
postgres_1 | index int8[]
postgres_1 | );
postgres_1 | ERROR: type "privacy" does not exist
postgres_1 | LINE 10: privacy privacy,
* travis: do not run "docker-compose up" in detached mode
Rather, allow database to finish its setup procedure and grant
Invidious time to launch.
2020-03-01 08:06:45 -08:00
|
|
|
- docker-compose up
|
2019-08-09 10:28:04 -07:00
|
|
|
- sleep 15 # Wait for cluster to become ready, TODO: do not sleep
|
|
|
|
- HEADERS="$(curl -I -s http://localhost:3000/)"
|
|
|
|
- STATUS="$(echo $HEADERS | head -n1)"
|
|
|
|
- if [[ "$STATUS" != *"200 OK"* ]]; then echo "$HEADERS"; exit 1; fi
|