summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml69
1 files changed, 54 insertions, 15 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 057e4d61..5f859613 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,10 +38,10 @@ jobs:
matrix:
stable: [true]
crystal:
- - 1.7.3
- - 1.8.2
- - 1.9.2
- - 1.10.1
+ - 1.12.1
+ - 1.13.2
+ - 1.14.0
+ - 1.15.0
include:
- crystal: nightly
stable: false
@@ -51,6 +51,11 @@ jobs:
with:
submodules: true
+ - name: Install required APT packages
+ run: |
+ sudo apt install -y libsqlite3-dev
+ shell: bash
+
- name: Install Crystal
uses: crystal-lang/install-crystal@v1.8.0
with:
@@ -59,7 +64,9 @@ jobs:
- name: Cache Shards
uses: actions/cache@v3
with:
- path: ./lib
+ path: |
+ ./lib
+ ./bin
key: shards-${{ hashFiles('shard.lock') }}
- name: Install Shards
@@ -71,14 +78,6 @@ jobs:
- 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
@@ -90,10 +89,10 @@ jobs:
- uses: actions/checkout@v4
- name: Build Docker
- run: docker-compose build --build-arg release=0
+ run: docker compose build --build-arg release=0
- name: Run Docker
- run: docker-compose up -d
+ run: docker compose up -d
- name: Test Docker
run: while curl -Isf http://localhost:3000; do sleep 1; done
@@ -124,4 +123,44 @@ jobs:
- name: Test Docker
run: while curl -Isf http://localhost:3000; do sleep 1; done
+ lint:
+
+ runs-on: ubuntu-latest
+
+ continue-on-error: true
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+
+ - name: Install Crystal
+ id: lint_step_install_crystal
+ uses: crystal-lang/install-crystal@v1.8.0
+ with:
+ crystal: latest
+
+ - name: Cache Shards
+ uses: actions/cache@v3
+ with:
+ path: |
+ ./lib
+ ./bin
+ key: shards-${{ hashFiles('shard.lock') }}-${{ steps.lint_step_install_crystal.outputs.crystal }}
+
+ - name: Install Shards
+ run: |
+ if ! shards check; then
+ shards install
+ fi
+
+ - name: Check Crystal formatter compliance
+ run: |
+ if ! crystal tool format --check; then
+ crystal tool format
+ git diff
+ exit 1
+ fi
+ - name: Run Ameba linter
+ run: bin/ameba