summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml88
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml47
-rw-r--r--README.md2
-rw-r--r--shard.lock42
-rw-r--r--src/invidious.cr2
6 files changed, 132 insertions, 50 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..affa7337
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,88 @@
+name: Invidious CI
+
+on:
+ push:
+ branches:
+ - "master"
+ - "api-only"
+ pull_request:
+ branches: "*"
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ # - name: Find out latest Crystal version
+ # run: |
+ # crystal_latest=$(curl -ILs -o /dev/null -w %{url_effective} https://github.com/crystal-lang/crystal/releases/latest | grep -o '[^/]*$')
+ # echo "crystal_latest=$crystal_latest" >> $GITHUB_ENV
+ # echo $crystal_latest
+ #
+ # - name: Cache Crystal
+ # uses: actions/cache@v2
+ # with:
+ # path: ./crystal-bin
+ # key: crystal-${{ env.crystal_latest }}
+ #
+ # - name: Add custom Crystal dir to path
+ # run: echo "./crystal-bin" >> $GITHUB_PATH
+ #
+ # - name: Find out installed Crystal version
+ # run: |
+ # if ! [ -x "$(command -v crystal)" ]; then
+ # crystal_installed="none"
+ # else
+ # crystal_installed=$(crystal version | grep Crystal | awk '{print $2}')
+ # fi
+ # echo "crystal_installed=$crystal_installed" >> $GITHUB_ENV
+ # echo $crystal_installed
+
+ - name: Install Crystal
+ uses: oprypin/install-crystal@v1.2.4
+ # if: env.crystal_installed != env.crystal_latest
+ # with:
+ # destination: ./crystal-bin
+
+ - name: Cache Shards
+ uses: actions/cache@v2
+ with:
+ path: ./lib
+ key: shards-${{ hashFiles('shard.lock') }}
+
+ - name: Install Shards
+ run: |
+ if ! shards check; then
+ shards install
+ fi
+
+ - name: Run tests
+ run: crystal spec
+
+ - name: Run lint
+ run: |
+ if ! crystal tool format --check; then
+ crystal tool format
+ git diff
+ exit 1
+ fi
+
+ - name: Build
+ run: crystal build --warnings all --error-on-warnings --error-trace src/invidious.cr
+
+ build-docker:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Build Docker
+ run: docker-compose up -d
+
+ - name: Test Docker
+ run: while curl -Isf http://localhost:3000; do sleep 1; done
+
diff --git a/.gitignore b/.gitignore
index c1ca4c20..3bbfccf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,3 @@
/.vscode/
/invidious
/sentry
-shard.lock
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f443e815..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-dist: bionic
-
-# Work around broken Travis Crystal image
-addons:
- apt:
- packages:
- - gcc
- - pkg-config
- - git
- - tzdata
- - libpcre3-dev
- - libevent-dev
- - libyaml-dev
- - libgmp-dev
- - libssl-dev
- - libxml2-dev
-
-jobs:
- include:
- - stage: build
- # TODO: Shallowly clone again once the .git folder is no longer required for building
- git:
- depth: false
- language: crystal
- crystal: latest
- before_install:
- - crystal --version
- - shards update
- - shards install
- install:
- - crystal build --warnings all --error-on-warnings src/invidious.cr
- script:
- - crystal tool format --check
- - crystal spec
-
- - stage: build_docker
- # TODO: Shallowly clone again once the .git folder is no longer required for building
- git:
- depth: false
- language: minimal
- services:
- - docker
- install:
- - docker-compose build
- script:
- - docker-compose up -d
- - while curl -Isf http://localhost:3000; do sleep 1; done
diff --git a/README.md b/README.md
index 64017379..91e36daf 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Invidious
-[![Build Status](https://travis-ci.org/iv-org/invidious.svg?branch=master)](https://travis-ci.org/github/iv-org/invidious) [![Translation Status](https://hosted.weblate.org/widgets/invidious/-/translations/svg-badge.svg)](https://hosted.weblate.org/engage/invidious/)
+[![Build Status](https://github.com/iv-org/invidious/workflows/Invidious%20CI/badge.svg)](https://github.com/iv-org/invidious/actions) [![Translation Status](https://hosted.weblate.org/widgets/invidious/-/translations/svg-badge.svg)](https://hosted.weblate.org/engage/invidious/)
## Invidious is an alternative front-end to YouTube
diff --git a/shard.lock b/shard.lock
new file mode 100644
index 00000000..1cf34ae7
--- /dev/null
+++ b/shard.lock
@@ -0,0 +1,42 @@
+version: 2.0
+shards:
+ db:
+ git: https://github.com/crystal-lang/crystal-db.git
+ version: 0.9.0
+
+ exception_page:
+ git: https://github.com/crystal-loot/exception_page.git
+ version: 0.1.4
+
+ kemal:
+ git: https://github.com/kemalcr/kemal.git
+ version: 0.26.1+git.commit.dfe7dca08f4c9a9456d6132af5f6b59fcd6865e4
+
+ kilt:
+ git: https://github.com/jeromegn/kilt.git
+ version: 0.4.0
+
+ lsquic:
+ git: https://github.com/iv-org/lsquic.cr.git
+ version: 2.18.1-1
+
+ pg:
+ git: https://github.com/will/crystal-pg.git
+ version: 0.21.1
+
+ pool:
+ git: https://github.com/ysbaddaden/pool.git
+ version: 0.2.3
+
+ protodec:
+ git: https://github.com/omarroth/protodec.git
+ version: 0.1.3
+
+ radix:
+ git: https://github.com/luislavena/radix.git
+ version: 0.3.9
+
+ sqlite3:
+ git: https://github.com/crystal-lang/crystal-sqlite3.git
+ version: 0.16.0
+
diff --git a/src/invidious.cr b/src/invidious.cr
index 0e8c2324..1a6a3bfa 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -64,7 +64,7 @@ HTTP_CHUNK_SIZE = 10485760 # ~10MB
CURRENT_BRANCH = {{ "#{`git branch | sed -n '/* /s///p'`.strip}" }}
CURRENT_COMMIT = {{ "#{`git rev-list HEAD --max-count=1 --abbrev-commit`.strip}" }}
-CURRENT_VERSION = {{ "#{`git log -1 --format=%ci | date -I -f - | sed s/-/./g`.strip}" }}
+CURRENT_VERSION = {{ "#{`git log -1 --format=%ci | awk '{print $1}' | sed s/-/./g`.strip}" }}
# This is used to determine the `?v=` on the end of file URLs (for cache busting). We
# only need to expire modified assets, so we can use this to find the last commit that changes