@ -1,6 +1,8 @@
name : Invidious CI
name : Invidious CI
on :
on :
schedule:
- cron : "0 0 * * *" # Every day at 00:00
push:
push:
branches:
branches:
- "master"
- "master"
@ -23,32 +25,47 @@ on:
jobs:
jobs:
build:
build:
runs-on : ubuntu-latest
runs-on : ubuntu-latest
name : "build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
continue-on-error : ${{ !matrix.stable }}
strategy:
fail-fast : false
matrix:
stable : [ true ]
crystal:
- 1.0 .0
- 1.1 .0
include:
- crystal : nightly
stable : false
steps:
steps:
- uses : actions/checkout@v2
- uses : actions/checkout@v2
- name : Install Crystal
- name : Install Crystal
uses : oprypin/install-crystal@v1.2.4
uses : oprypin/install-crystal@v1.2.4
with:
with:
crystal : 1.0 .0
crystal : ${{ matrix.crystal }}
- name : Cache Shards
- name : Cache Shards
uses : actions/cache@v2
uses : actions/cache@v2
with:
with:
path : ./lib
path : ./lib
key : shards-${{ hashFiles('shard.lock') }}
key : shards-${{ hashFiles('shard.lock') }}
- name : Install Shards
- name : Install Shards
run : |
run : |
if ! shards check; then
if ! shards check; then
shards install
shards install
fi
fi
- name : Run tests
- name : Run tests
run : crystal spec
run : crystal spec
- name : Run lint
- name : Run lint
run : |
run : |
if ! crystal tool format --check; then
if ! crystal tool format --check; then
@ -56,20 +73,20 @@ jobs:
git diff
git diff
exit 1
exit 1
fi
fi
- name : Build
- name : Build
run : crystal build --warnings all --error-on-warnings --error-trace src/invidious.cr
run : crystal build --warnings all --error-on-warnings --error-trace src/invidious.cr
build-docker:
build-docker:
runs-on : ubuntu-latest
runs-on : ubuntu-latest
steps:
steps:
- uses : actions/checkout@v2
- uses : actions/checkout@v2
- name : Build Docker
- name : Build Docker
run : docker-compose up -d
run : docker-compose up -d
- name : Test Docker
- name : Test Docker
run : while curl -Isf http://localhost:3000; do sleep 1; done
run : while curl -Isf http://localhost:3000; do sleep 1; done