Add container and CI

This commit is contained in:
Perflyst 2021-01-07 13:20:18 +01:00
parent a413b4ca36
commit 869aa199a3
No known key found for this signature in database
GPG key ID: B0D9C8E56E999F68
3 changed files with 80 additions and 0 deletions

55
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: instances.invidio.us CI
on:
push:
branches:
- "master"
pull_request:
branches: "*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Crystal
uses: oprypin/install-crystal@v1.3.0
- 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 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/instances.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

18
Dockerfile Normal file
View file

@ -0,0 +1,18 @@
FROM crystallang/crystal:0.35.1-alpine AS builder
WORKDIR /app
COPY ./shard.yml ./shard.yml
RUN shards install
COPY ./src/ ./src/
RUN crystal build ./src/instances.cr --release
FROM alpine:latest
RUN apk add --no-cache gc pcre libgcc
WORKDIR /app
RUN addgroup -g 1000 -S invidious && \
adduser -u 1000 -S invidious -G invidious
COPY ./assets/ ./assets/
COPY --from=builder /app/instances .
EXPOSE 3000
USER invidious
CMD ["/app/instances"]

7
docker-compose.yml Normal file
View file

@ -0,0 +1,7 @@
version: '3'
services:
instances:
build: .
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"