summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorTheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>2020-12-04 20:59:07 +0000
committerGitHub <noreply@github.com>2020-12-04 20:59:07 +0000
commitca4408b343887581abd16b7f85b71f1abdb2d4e3 (patch)
tree5a787892f910d25246c39fef4411b31166a4d493 /.github
parent527f408f6a288a7e2f0df3e7bcac183f3d7ca4b9 (diff)
parenteb6d3d68a9ed880fe0e3e4b6404925d0f4a4c5ad (diff)
downloadinvidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.tar.gz
invidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.tar.bz2
invidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.zip
Merge pull request #1519 from saltycrys/github-actions-ci
Switch to GitHub Actions for CI
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ci.yml88
1 files changed, 88 insertions, 0 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
+