Skip to content

Commit

Permalink
Update GHA and readme
Browse files Browse the repository at this point in the history
  • Loading branch information
DouweM committed Aug 5, 2023
1 parent a929239 commit d783dae
Show file tree
Hide file tree
Showing 5 changed files with 140 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/.git

# .gitignore
/.meltano/
/output/
/logs/
/.env
/.python-version
72 changes: 72 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Build, Test, Push

on:
push:
schedule:
- cron: "0 0 * * 0"

permissions:
contents: read
packages: write

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-test-push:
runs-on: ubuntu-latest

steps:
### Build
- name: Build / Checkout repository
uses: actions/checkout@v3

- name: Build / Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build / Extract Docker metadata (tags, labels)
id: meta
uses: docker/metadata-action@v4.6.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build / Build Docker image
uses: docker/build-push-action@v4.1.1
with:
context: .
load: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

### Test
- name: Test / Render app to image
run: |
docker run -v "$(pwd)/output:/project/output" -e TAP_PIXLET_MAGNIFICATION=8 ${{ steps.meta.outputs.tags }}
sudo mv output/**/*.webp output/image.webp
- name: Test / Store image
uses: actions/upload-artifact@v3
with:
name: image
path: output/image.webp

### Push
- name: Push / Log in to the Container registry
uses: docker/login-action@v2.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Push / Push Docker image
uses: docker/build-push-action@v4.1.1
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/.meltano
/output/
/logs/
/.env
/.python-version
19 changes: 19 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
ARG PIXBYT_IMAGE=ghcr.io/douwem/pixbyt:main
FROM $PIXBYT_IMAGE as base

ENV APP_NAME=jeopardy

WORKDIR /project

# Copy app files
COPY ./ ./apps/${APP_NAME}

# Install apt packages for apps
RUN cat ./apps/**/apt-packages.txt | sort | uniq > ./apps/apt-packages.txt
RUN xargs -a apps/apt-packages.txt apt-get install -y

# Install Meltano plugins for apps
RUN meltano --log-level=debug install extractors tap-pixlet--${APP_NAME}

ENTRYPOINT []
CMD meltano run ${APP_NAME}--webp
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,39 @@
[Tidbyt](https://tidbyt.com/) app that shows a random *Jeopardy!* clue from [J! Archive](https://j-archive.com/). The correct answer is shown after 10 seconds.

![Screenshot](screenshot.webp)

## Installation

This app is not available through Tidbyt's mobile app as it uses features that (for security reasons) are not supported in [community apps](https://tidbyt.dev/docs/publish/community-apps) that run on Tidbyt's official app server.

Instead, it needs to be run using [Pixbyt](https://pixbyt.dev), a self-hosted Tidbyt app server for advanced apps.

### 1. Set up Pixbyt

1. [Create your own Pixbyt repo](https://github.com/DouweM/pixbyt#1-create-your-own-pixbyt-repo)
2. [Configure your Tidbyt](https://github.com/DouweM/pixbyt#2-configure-your-tidbyt)

### 2. Install the app

1. Add this repo as a submodule under `apps`:

```bash
git submodule add https://github.com/DouweM/tidbyt-jeopardy.git apps/jeopardy
```

1. Add an update schedule to `apps.yml` under `schedules:`:

```yaml
schedules:
# ...
- name: jeopardy
interval: '*/5 * * * *' # Every 5 minutes
job: jeopardy
```

## Usage

Build and launch your Pixbyt app server:

1. [Build the app server](https://github.com/DouweM/pixbyt#4-build-the-app-server)
1. [Launch the app server](https://github.com/DouweM/pixbyt#5-launch-the-app-server)

0 comments on commit d783dae

Please sign in to comment.