feat: add missing files (#1101)

* feat: add missing files

* chore: update readme

* chore: update branch

* chore: remove olds from matrix

* chore: remove dev containers
This commit is contained in:
Bas van Zanten
2025-12-11 11:07:38 +01:00
committed by GitHub
parent 79e1984940
commit 7d93ee3a7d
30 changed files with 6497 additions and 2375 deletions

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
github: [PreMiD, Timeraa]
patreon: Timeraa
ko_fi: Timeraa

View File

@@ -0,0 +1,36 @@
name: Build and Push Docker Image
description: Builds a Docker image and pushes it to GitHub Container Registry
inputs:
app:
description: Name of the app
required: true
token:
description: GitHub token
required: true
outputs:
version:
description: Version of the app
value: ${{ steps.get_version.outputs.version }}
runs:
using: composite
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Get package.json version
id: get_version
run: echo ::set-output name=version::$(node -p "require('./apps/${{ inputs.app }}/package.json').version")
shell: bash
- name: Convert repository owner to lowercase
id: repo
run: echo "::set-output name=lowercase::$(echo ${{ github.repository_owner }} | awk '{print tolower($0)}')"
shell: bash
- name: Build and Push Docker Image
uses: premid/premid/.github/actions/build-docker@monorepo
with:
dockerfile: ./apps/${{ inputs.app }}/Dockerfile
push: true
token: ${{ inputs.token }}
tags: ghcr.io/${{ steps.repo.outputs.lowercase }}/${{ inputs.app }}:${{ steps.get_version.outputs.version }},ghcr.io/${{ steps.repo.outputs.lowercase }}/${{ inputs.app }}:latest

View File

@@ -0,0 +1,46 @@
name: Build Docker Image
description: Builds a Docker image using Docker Buildx
inputs:
dockerfile:
description: Path to the Dockerfile
required: true
tags:
description: Comma-separated list of tags for the Docker image
required: true
push:
description: Whether to push the Docker image to the registry
required: false
default: "false"
token:
description: GitHub Token
required: false
runs:
using: composite
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
if: ${{ inputs.push == 'true' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.token }}
- name: Build Docker Image
uses: docker/build-push-action@v5
with:
context: .
file: ${{ inputs.dockerfile }}
platforms: linux/amd64,linux/arm64
push: ${{ inputs.push }}
tags: ${{ inputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max

5
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>Recodive/Recodive:renovate-config"],
"automerge": false
}

65
.github/workflows/cd.yaml vendored Normal file
View File

@@ -0,0 +1,65 @@
name: CD
on:
push:
branches:
- main
tags:
- "*"
permissions:
packages: write
jobs:
build:
name: Build Docker Images
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- pd
- schema-server
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push website
uses: docker/build-push-action@v6
if: matrix.target == 'website'
with:
push: true
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: SERVICE=${{ matrix.target }}
target: website
tags: ghcr.io/premid/${{ matrix.target }}:beta-${{ github.sha }}-${{ github.run_number }}
- name: Get package.json version
if: matrix.target != 'website'
id: get_version
run: echo ::set-output name=version::$(node -p "require('./apps/${{ matrix.target }}/package.json').version")
shell: bash
- name: Build and push other images
uses: docker/build-push-action@v6
if: matrix.target != 'website' && startsWith(github.ref, 'refs/tags/')
with:
push: true
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
target: prod
build-args: SERVICE=${{ matrix.target }}
tags: ghcr.io/premid/${{ matrix.target }}:latest,ghcr.io/premid/${{ matrix.target }}:${{ steps.get_version.outputs.version }}

68
.github/workflows/ci.yaml vendored Normal file
View File

@@ -0,0 +1,68 @@
name: Build, Lint and Test
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build, Lint and Test
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: pnpm
node-version-file: package.json
- name: Install Dependencies
run: pnpm install
- name: Codegen
run: pnpm -r codegen
- name: Lint
run: pnpm run lint
- name: Build
run: pnpm run build
- name: Test
run: pnpm test
build-docker:
name: Build Docker Images
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- pd
- schema-server
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Get Target
id: get_target
run: echo "target=$([[ ${{ matrix.target }} == 'website' ]] && echo 'website' || echo 'prod')" >> $GITHUB_OUTPUT
- name: Build
uses: docker/build-push-action@v6
with:
cache-from: type=gha
cache-to: type=gha,mode=max
target: ${{ steps.get_target.outputs.target }}
build-args: SERVICE=${{ matrix.target }}