Invidious CI #3389
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Invidious CI | |
on: | |
schedule: | |
- cron: "0 0 * * *" # Every day at 00:00 | |
push: | |
branches: | |
- "master" | |
- "api-only" | |
pull_request: | |
branches: "*" | |
paths-ignore: | |
- "*.md" | |
- LICENCE | |
- TRANSLATION | |
- invidious.service | |
- .git* | |
- .editorconfig | |
- screenshots/* | |
- assets/** | |
- locales/* | |
- config/** | |
- .github/ISSUE_TEMPLATE/* | |
- kubernetes/** | |
jobs: | |
build: | |
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.6.2 | |
- 1.7.3 | |
- 1.8.2 | |
- 1.9.2 | |
include: | |
- crystal: nightly | |
stable: false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Crystal | |
uses: crystal-lang/install-crystal@v1.8.0 | |
with: | |
crystal: ${{ matrix.crystal }} | |
- name: Cache Shards | |
uses: actions/cache@v3 | |
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@v3 | |
- name: Build Docker | |
run: docker-compose build --build-arg release=0 | |
- name: Run Docker | |
run: docker-compose up -d | |
- name: Test Docker | |
run: while curl -Isf http://localhost:3000; do sleep 1; done | |
build-docker-arm64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm64 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build Docker ARM64 image | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
file: docker/Dockerfile.arm64 | |
platforms: linux/arm64/v8 | |
build-args: release=0 | |
- name: Test Docker | |
run: while curl -Isf http://localhost:3000; do sleep 1; done | |