31 Commits

Author SHA1 Message Date
Tobias Klemp
5aa06f0915 try docker login
Some checks failed
CI / build-docker-image (pull_request) Failing after 1m55s
CI / build-and-test (pull_request) Successful in 5m39s
2025-12-07 22:45:45 +01:00
Tobias Klemp
f5d0689359 nope
All checks were successful
CI / build-and-test (pull_request) Successful in 2m40s
2025-12-07 21:35:12 +01:00
Tobias Klemp
2476e7ab12 try!
Some checks failed
CI / build-and-test (pull_request) Failing after 1m6s
2025-12-07 21:33:58 +01:00
Tobias Klemp
1ac8717fec remove eslint
All checks were successful
CI / build-and-test (pull_request) Successful in 3m43s
2025-12-07 21:28:23 +01:00
Tobias Klemp
9f66da7904 check api key
All checks were successful
CI / build-and-test (pull_request) Successful in 14m42s
2025-12-07 20:14:00 +01:00
Tobias Klemp
dbe95b9352 try github for faster download
Some checks failed
CI / build-and-test (pull_request) Failing after 14m23s
2025-12-07 19:24:47 +01:00
Tobias Klemp
66651f64f8 add node for svelte-kit sync
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
2025-12-07 18:59:16 +01:00
Tobias Klemp
380ad293e7 hopefully check fixed
Some checks failed
CI / build-and-test (pull_request) Failing after 14m7s
2025-12-07 18:42:05 +01:00
Tobias Klemp
b1ab2c02b8 fix: new bun version and script to use node_modules
Some checks failed
CI / build-and-test (pull_request) Failing after 13m7s
2025-12-07 16:50:54 +01:00
Tobias Klemp
6581cff44f fix: env variables
Some checks failed
CI / build-and-test (pull_request) Failing after 11m37s
2025-12-07 16:29:37 +01:00
Tobias Klemp
e1f1e867d6 fix
Some checks failed
CI / build-and-test (pull_request) Failing after 7m55s
2025-12-07 15:45:47 +01:00
Tobias Klemp
b1fe405434 test
Some checks failed
CI / build-and-test (pull_request) Failing after 4m35s
2025-12-06 16:11:56 +01:00
Tobias Klemp
cd091ab603 testig
Some checks failed
CI / build-and-test (pull_request) Failing after 1m46s
2025-12-06 01:54:31 +01:00
Tobias Klemp
a8ca5b37f8 test
Some checks failed
CI / build-and-test (pull_request) Failing after 51s
2025-12-06 01:39:53 +01:00
Tobias Klemp
b6f56ae0fc running as build and test
Some checks failed
CI / build-and-test (pull_request) Failing after 44s
2025-12-06 01:36:27 +01:00
Tobias Klemp
5d2db330af no nudel
Some checks failed
CI / install-dependencies (pull_request) Has been cancelled
2025-12-06 01:25:23 +01:00
Tobias Klemp
3bd9cb6c2b nudel
Some checks failed
CI / install-dependencies (pull_request) Failing after 3m56s
2025-12-06 01:18:17 +01:00
Tobias Klemp
a0b0d9e2e8 try upload v3
Some checks failed
CI / install-dependencies (pull_request) Failing after 4m10s
2025-12-05 22:33:21 +01:00
Tobias Klemp
12b77193d0 only run install
Some checks failed
CI / install-dependencies (pull_request) Failing after 1m31s
2025-12-05 22:26:23 +01:00
Tobias Klemp
ecf17af90a change name
Some checks failed
CI / install-dependencies (pull_request) Failing after 4m33s
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
CI / build (pull_request) Has been skipped
2025-12-03 23:57:39 +01:00
Tobias Klemp
606d0842a1 use artifacts
Some checks failed
CI / type-check (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
CI / format-check (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / install-dependencies (pull_request) Has been cancelled
2025-12-03 23:51:48 +01:00
Tobias Klemp
778f696074 added logs
Some checks failed
CI / build (pull_request) Blocked by required conditions
CI / install-dependencies (pull_request) Successful in 55s
CI / type-check (pull_request) Failing after 2m23s
CI / lint (pull_request) Failing after 2m31s
CI / format-check (pull_request) Failing after 2m46s
2025-12-03 23:42:30 +01:00
Tobias Klemp
b5e410d7c6 fix cache
Some checks failed
CI / install-dependencies (pull_request) Successful in 58s
CI / type-check (pull_request) Failing after 1m32s
CI / lint (pull_request) Failing after 1m36s
CI / build (pull_request) Failing after 11m18s
CI / format-check (pull_request) Failing after 11m21s
2025-12-03 23:36:23 +01:00
Tobias Klemp
58fb9d7656 replaced eslint with oxlint
Some checks failed
CI / install-dependencies (pull_request) Successful in 58s
CI / type-check (pull_request) Failing after 1m34s
CI / lint (pull_request) Failing after 2m39s
CI / format-check (pull_request) Failing after 2m48s
CI / build (pull_request) Failing after 3m0s
2025-12-03 23:10:47 +01:00
Tobias Klemp
5af0df8aed added needs again 2025-12-03 23:06:47 +01:00
Tobias Klemp
c1e9399954 added cache
Some checks failed
CI / lint (pull_request) Failing after 2m14s
CI / install-dependencies (pull_request) Successful in 3m14s
CI / type-check (pull_request) Failing after 3m4s
CI / build (pull_request) Failing after 11m50s
CI / format-check (pull_request) Failing after 12m10s
2025-12-03 23:02:19 +01:00
Tobias Klemp
cce1dfff33 fix: lint and format cmds
Some checks failed
CI / install (pull_request) Successful in 3m28s
CI / lint (pull_request) Failing after 45s
CI / type-check (pull_request) Failing after 43s
CI / build (pull_request) Failing after 10m2s
CI / format-check (pull_request) Failing after 10m7s
2025-12-03 22:40:08 +01:00
Tobias Klemp
c49cd85a09 try bun container
Some checks failed
CI / install (pull_request) Successful in 57s
CI / type-check (pull_request) Failing after 29s
CI / lint (pull_request) Failing after 29s
CI / format-check (pull_request) Failing after 28s
CI / build (pull_request) Failing after 48s
2025-12-03 22:15:43 +01:00
Tobias Klemp
45b7121e60 use default image
Some checks failed
CI / install (pull_request) Failing after 3m55s
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
CI / build (pull_request) Has been skipped
2025-12-03 22:09:27 +01:00
Tobias Klemp
459c74822b feat: added first workflow
Some checks failed
CI / install (pull_request) Failing after 3m16s
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
CI / build (pull_request) Has been skipped
2025-12-03 21:02:27 +01:00
Tobias Klemp
2806575233 fix: translation 2025-12-03 20:52:19 +01:00
8 changed files with 12 additions and 427 deletions

View File

@@ -1,49 +0,0 @@
name: Build docker image
description: 'builds docker image'
inputs:
tag:
description: 'Docker image tag'
required: true
REGISTRY_ACCESS_TOKEN:
description: 'Registry token to authenticate'
required: true
REGISTRY_USER:
description: 'Registry user to authenticate'
required: true
outputs:
image_url:
description: 'Full image URL that was built'
value: ${{ steps.build.outputs.image_url }}
runs:
using: 'composite'
steps:
- name: Set up Docker Build
uses: docker/setup-buildx-action@v3
- name: Log in to registry
uses: docker/login-action@v3
with:
registry: ${{ vars.INSTANCE_URL }}
username: ${{ inputs.REGISTRY_USER }}
password: ${{ inputs.REGISTRY_ACCESS_TOKEN }}
- name: Set repository variable
shell: bash
id: repo
run: |
REPOSITORY=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]')
echo "name=$REPOSITORY" >> $GITHUB_OUTPUT
- name: Build and push image
uses: docker/build-push-action@v6
with:
push: true
tags: '${{ vars.INSTANCE_URL }}/${{ steps.repo.outputs.name }}:${{ inputs.tag }}'
- name: Set output
shell: bash
run: |
echo "image_url=${{ vars.INSTANCE_URL }}/${{ steps.repo.outputs.name }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT

View File

@@ -1,87 +0,0 @@
name: 'Docker Compose Deploy'
description: 'Deploy application using Docker Compose'
inputs:
compose_file:
description: 'Path to docker-compose file'
required: false
default: 'docker-compose.yml'
project_name:
description: 'Docker Compose project name'
required: true
url:
description: 'Url of the deployed application'
required: true
environment_file:
description: 'Path to environment file'
required: false
default: '.env'
image_url:
description: 'Docker image tag to deploy'
required: false
default: 'latest'
registry:
description: 'Docker registry'
required: false
default: 'git.klemp.dev'
deployment_key:
description: 'SSH deployment private key'
required: true
ssh_port:
description: 'SSH port'
required: true
ssh_host:
description: 'SSH host'
required: true
ssh_user:
description: 'SSH user'
required: true
runs:
using: 'composite'
steps:
- name: Get branch name
id: branch_name
uses: ./.gitea/actions/getTagSafeRef
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.1
with:
ssh-private-key: ${{ inputs.deployment_key }}
- name: Add SSH host to known hosts
shell: bash
run: |
mkdir -p ~/.ssh
ssh-keyscan -p ${{ inputs.ssh_port }} ${{ inputs.ssh_host }} >> ~/.ssh/known_hosts
cat > .env << EOF
IMAGE_URL='${{ inputs.image_url }}'
URL='${{ inputs.url }}'
REGISTRY=git.klemp.dev
PROJECT_NAME=${{ steps.branch_name.outputs.branch_name }}
COMPOSE_PROJECT_NAME=${{ steps.branch_name.outputs.branch_name }}
EOF
docker context rm deploy_target 2>/dev/null || true
docker context create deploy_target --docker "host=ssh://${{ inputs.ssh_user }}@${{ inputs.ssh_host }}:${{ inputs.ssh_port }}"
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} down --remove-orphans || true
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} pull
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} up -d
echo "Waiting for services to start..."
sleep 10
CONTAINERS=$(DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} ps --services | tr '\n' ',' | sed 's/,$//')
echo "containers=$CONTAINERS" >> $GITHUB_OUTPUT
echo "✅ Deployment completed successfully!"
echo "🌐 URL: ${{ inputs.url }}"
echo "📦 Containers: $CONTAINERS"
echo "=== Deployment Status ==="
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} ps
echo "========================="

View File

@@ -1,52 +0,0 @@
name: 'Get Tag Safe Branch Name'
description: 'Get a sanitized branch name that can be used as a Docker tag'
outputs:
branch_name:
description: 'Branch name that can be used as docker image tag'
value: ${{ steps.get-branch.outputs.branch_name }}
runs:
using: 'composite'
steps:
- name: Get PR branch info via Gitea API
if: github.event.issue.pull_request
id: pr-info
shell: bash
run: |
# Use Gitea's API endpoint
PR_URL="${{ github.event.issue.pull_request.url }}"
# Extract PR info using curl (Gitea API is similar to GitHub)
PR_INFO=$(curl -s -H "Authorization: token ${{ gitea.token }}" "${{ gitea.api_url }}/repos/${{ gitea.repository }}/pulls/${{ gitea.event.issue.number }}")
# Extract branch name from JSON response
BRANCH_NAME=$(echo "$PR_INFO" | jq -r '.head.ref')
echo "pr_branch=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "Found PR branch: $BRANCH_NAME"
- name: Create tag safe branch name
id: get-branch
shell: bash
run: |
if [[ "${{ github.event.issue.pull_request }}" != "" && "${{ github.event.issue.pull_request }}" != "null" ]]; then
# This is a PR comment - use the branch we got from API
BRANCH_NAME="${{ steps.pr-info.outputs.pr_branch }}"
echo "Using PR branch: $BRANCH_NAME"
elif [[ "${{ github.head_ref }}" != "" ]]; then
# This is a PR workflow
BRANCH_NAME="${{ github.head_ref }}"
echo "Using head ref: $BRANCH_NAME"
else
# This is a push to main/other branch
BRANCH_NAME="${{ github.ref_name }}"
echo "Using ref name: $BRANCH_NAME"
fi
# Clean the branch name for Docker tag compatibility
CLEAN_BRANCH=$(echo "$BRANCH_NAME" | sed 's/[^a-zA-Z0-9._-]/-/g' | tr '[:upper:]' '[:lower:]')
echo "Original branch: $BRANCH_NAME"
echo "Clean branch: $CLEAN_BRANCH"
echo "branch_name=$CLEAN_BRANCH" >> $GITHUB_OUTPUT

View File

@@ -38,24 +38,18 @@ jobs:
- name: Check formatting - name: Check formatting
run: bun --bun run format:check run: bun --bun run format:check
# build-docker-image: build-docker-image:
# runs-on: ubuntu-latest runs-on: ubuntu-latest
# steps: steps:
# - name: Set up Docker Build - name: Checkout code
# uses: docker/setup-buildx-action@v3 uses: actions/checkout@v4
# - name: Log in to registry - name: Login to Docker registry
# uses: docker/login-action@v3 uses: docker/login-action@v3
# with: with:
# registry: ${{ vars.INSTANCE_URL }} registry: http://gitea:3000
# username: ${{ github.actor }} username: ${{ vars.REGISTRY_USERNAME }}
# password: ${{ secrets.REGISTRY_ACCESS_TOKEN }} password: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
# - name: Build and push image
# uses: docker/build-push-action@v6
# with:
# push: true
# tags: ${{ vars.INSTANCE_URL }}/tech-reborn/phoenix:${{ github.sha }}
# type-check: # type-check:
# runs-on: ubuntu-latest # runs-on: ubuntu-latest

View File

@@ -1,82 +0,0 @@
name: ChatOps Deploy
on: issue_comment
jobs:
FeatureDeployment:
if: |
gitea.event.issue.pull_request &&
startsWith(gitea.event.comment.body, '/deploy')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get branch name
id: branch_name
uses: ./.gitea/actions/getTagSafeRef
# - name: Build and push image
# id: docker_build
# uses: ./.gitea/actions/build
# with:
# tag: ${{ steps.branch_name.outputs.branch_name }}
# REGISTRY_ACCESS_TOKEN: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
# REGISTRY_USER: ${{ gitea.actor }}
- name: Create environment file
run: |
cat > .env << EOF
TOLGEE_API_URL=${{ vars.TOLGEE_API_URL }}
TOLGEE_API_KEY=${{ secrets.TOLGEE_API_KEY }}
TRANSLATION_CACHE_TTL=${{ vars.TRANSLATION_CACHE_TTL }}
EOF
- name: Deploy application
uses: ./.gitea/actions/deploy
with:
project_name: ${{ steps.branch_name.outputs.branch_name }}
url: '${{ steps.branch_name.outputs.branch_name }}.phoenix.klemp.local'
# image_url: ${{ steps.docker_bui ld.outputs.image_url }}
image_url: 'git.klemp.dev/tech-reborn/phoenix:feature-branch-deployments'
deployment_key: ${{ secrets.SSH_DEPLOYMENT_KEY }}
ssh_host: ${{ vars.ssh_host }}
ssh_port: ${{ vars.ssh_port }}
ssh_user: ${{ vars.ssh_user }}
# - name: Remove old Docker context
# run: 'docker context rm deploy_target 2>/dev/null || true'
# - name: Create Docker context
# run: 'docker context create deploy_target --docker "host=ssh://${{ vars.ssh_user }}@${{ vars.ssh_host }}:${{ vars.ssh_port }}"'
# - name: Validate Docker context
# run: 'docker --context deploy_target info'
# - name: Stop existing deployment
# run: |
# DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} down --remove-orphans || true
# - name: Pull latest images
# run: |
# DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} pull
# - name: Deploy with Docker Compose
# id: deploy
# run: |
# DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} up -d
# echo "Waiting for services to start..."
# sleep 10
# CONTAINERS=$(DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} ps --services | tr '\n' ',' | sed 's/,$//')
# echo "containers=$CONTAINERS" >> $GITHUB_OUTPUT
# echo "✅ Deployment completed successfully!"
# echo "🌐 URL: ${{ steps.branch_name.outputs.branch_name }}.phoenix.klemp.local"
# echo "📦 Containers: $CONTAINERS"
# - name: Show deployment status
# run: |
# echo "=== Deployment Status ==="
# DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.branch_name.outputs.branch_name }} ps
# echo "========================="

View File

@@ -1,112 +0,0 @@
name: Deploy
on:
push:
branches:
- develop
tags:
- '*'
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Get branch name
id: branch_name
uses: ./.gitea/actions/getTagSafeRef
- name: Determine image tag
id: image_tag
run: |
if [[ ${{ github.ref }} == refs/tags/* ]]; then
IMAGE_TAG=${{ github.ref_name }}
ENVIRONMENT=production
elif [[ ${{ github.ref }} == refs/heads/develop ]]; then
IMAGE_TAG="develop"
ENVIRONMENT=develop
fi
echo "tag=$IMAGE_TAG" >> $GITHUB_OUTPUT
echo "env=$ENVIRONMENT" >> $GITHUB_OUTPUT
echo "Image tag will be: $IMAGE_TAG"
echo "env will be: $ENVIRONMENT"
- name: Build and push image
id: docker_build
uses: ./.gitea/actions/build
with:
tag: ${{ steps.image_tag.outputs.tag }}
REGISTRY_ACCESS_TOKEN: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
REGISTRY_USER: ${{ gitea.actor }}
- name: Determine URL
id: url
run: |
if [[ ${{ github.ref_type }} == "tag" ]]; then
URL="phoenix.klemp.local"
elif [[ ${{ github.ref_name }} == "develop" ]]; then
URL="develop.phoenix.klemp.local"
fi
echo "url=$URL" >> $GITHUB_OUTPUT
echo "URL will be: $URL"
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.1
with:
ssh-private-key: ${{ secrets.SSH_DEPLOYMENT_KEY }}
- name: Add SSH host to known hosts
shell: bash
run: |
mkdir -p ~/.ssh
ssh-keyscan -p ${{ vars.ssh_port }} ${{ vars.ssh_host }} >> ~/.ssh/known_hosts
- name: Create environment file
run: |
cat > .env << EOF
IMAGE_URL='${{ steps.docker_build.outputs.image_url }}'
URL='${{ steps.url.outputs.url }}'
REGISTRY=git.klemp.dev
PROJECT_NAME=${{ steps.branch_name.outputs.branch_name }}
COMPOSE_PROJECT_NAME=${{ steps.branch_name.outputs.branch_name }}
TOLGEE_API_URL=${{ vars.TOLGEE_API_URL }}
TOLGEE_API_KEY=${{ secrets.TOLGEE_API_KEY }}
TRANSLATION_CACHE_TTL=${{ vars.TRANSLATION_CACHE_TTL }}
EOF
- name: Remove old Docker context
run: 'docker context rm deploy_target 2>/dev/null || true'
- name: Create Docker context
run: 'docker context create deploy_target --docker "host=ssh://${{ vars.ssh_user }}@${{ vars.ssh_host }}:${{ vars.ssh_port }}"'
- name: Stop existing deployment
run: |
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.image_tag.outputs.env }} down --remove-orphans || true
- name: Pull latest images
run: |
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.image_tag.outputs.env }} pull
- name: Deploy with Docker Compose
id: deploy
run: |
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.image_tag.outputs.env }} up -d
echo "Waiting for services to start..."
sleep 10
CONTAINERS=$(DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.image_tag.outputs.env }} ps --services | tr '\n' ',' | sed 's/,$//')
echo "containers=$CONTAINERS" >> $GITHUB_OUTPUT
echo "✅ Deployment completed successfully!"
echo "🌐 URL: ${{ steps.url.outputs.url }}"
echo "📦 Containers: $CONTAINERS"
- name: Show deployment status
run: |
echo "=== Deployment Status ==="
DOCKER_CONTEXT=deploy_target docker compose -f docker-compose.yml -p ${{ steps.image_tag.outputs.env }} ps
echo "========================="

View File

@@ -1,27 +0,0 @@
networks:
tolgee:
name: tolgee
external: true
default:
name: traefik-proxy
external: true
services:
app:
image: ${IMAGE_URL}
container_name: ${PROJECT_NAME}-app
networks:
- tolgee
environment:
TOLGEE_API_URL: ${TOLGEE_API_URL}
TOLGEE_API_KEY: ${TOLGEE_API_KEY}
TRANSLATION_CACHE_TTL: ${TRANSLATION_CACHE_TTL}
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.docker.network=traefik-proxy
- traefik.http.routers.${PROJECT_NAME}.entrypoints=http
- traefik.http.routers.${PROJECT_NAME}.service=${PROJECT_NAME}
- traefik.http.routers.${PROJECT_NAME}.rule=Host(`${URL}`)
- traefik.http.services.${PROJECT_NAME}.loadbalancer.server.port=3000

View File

@@ -64,7 +64,6 @@ class LanguageService {
protected async fetchTranslations(languageCodes: string | string[]) { protected async fetchTranslations(languageCodes: string | string[]) {
const url = new URL(`${env.TOLGEE_API_URL}/v2/projects/2/export`) const url = new URL(`${env.TOLGEE_API_URL}/v2/projects/2/export`)
console.log('Getting language data', url.toString())
url.searchParams.append('format', 'JSON') url.searchParams.append('format', 'JSON')
url.searchParams.append('zip', 'true') url.searchParams.append('zip', 'true')
@@ -77,6 +76,7 @@ class LanguageService {
if (!env.TOLGEE_API_KEY) { if (!env.TOLGEE_API_KEY) {
throw new Error('TOLGEE_API_KEY not set') throw new Error('TOLGEE_API_KEY not set')
} }
const response = await fetch(url, { const response = await fetch(url, {
method: 'GET', method: 'GET',
headers: { headers: {