11 Commits

Author SHA1 Message Date
Tobias Klemp
2abaf6e6bf do install everywhere
All checks were successful
CI / build (pull_request) Successful in 3m43s
CI / format-check (pull_request) Successful in 5m0s
CI / lint (pull_request) Successful in 5m8s
CI / type-check (pull_request) Successful in 6m5s
2026-01-03 19:15:41 +01:00
Tobias Klemp
783b378673 need node obviously
Some checks failed
CI / install-dependencies (pull_request) Successful in 1m28s
CI / build (pull_request) Failing after 1m20s
CI / type-check (pull_request) Failing after 1m19s
CI / lint (pull_request) Failing after 1m33s
CI / format-check (pull_request) Failing after 1m36s
2026-01-03 19:12:29 +01:00
Tobias Klemp
73ccad3144 dumm
Some checks failed
CI / install-dependencies (pull_request) Successful in 1m32s
CI / build (pull_request) Failing after 1m28s
CI / type-check (pull_request) Failing after 1m33s
CI / lint (pull_request) Failing after 1m48s
CI / format-check (pull_request) Failing after 1m47s
2026-01-03 19:08:32 +01:00
Tobias Klemp
e215ba54e6 use gitea upload
Some checks failed
CI / install-dependencies (pull_request) Failing after 1m5s
CI / build (pull_request) Has been skipped
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
2026-01-03 19:04:58 +01:00
Tobias Klemp
b73a52beb1 upsi daisy
Some checks failed
CI / install-dependencies (pull_request) Failing after 2m39s
CI / build (pull_request) Has been skipped
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
2026-01-03 18:56:02 +01:00
Tobias Klemp
77799dded2 newer artifact upload version
Some checks failed
CI / install-dependencies (pull_request) Failing after 2m5s
CI / build (pull_request) Has been skipped
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
2026-01-03 18:51:13 +01:00
Tobias Klemp
654f7bfec6 feat: cache node_modules
Some checks failed
CI / install-dependencies (pull_request) Failing after 3m31s
CI / build (pull_request) Has been skipped
CI / type-check (pull_request) Has been skipped
CI / lint (pull_request) Has been skipped
CI / format-check (pull_request) Has been skipped
2026-01-03 18:43:04 +01:00
Tobias Klemp
f35e45c38c fix format
All checks were successful
CI / build-and-test (push) Successful in 3m41s
Deploy / build-and-deploy (push) Successful in 18m46s
2026-01-03 18:38:47 +01:00
Tobias Klemp
fcfc773d87 fix build image url output casing
Some checks failed
Deploy / build-and-deploy (push) Successful in 16m0s
CI / build-and-test (push) Failing after 2m24s
2026-01-03 18:00:39 +01:00
Tobias Klemp
74ff0f0673 next try
Some checks failed
CI / build-and-test (push) Failing after 3m24s
Deploy / build-and-deploy (push) Failing after 16m47s
2026-01-03 17:35:30 +01:00
Tobias Klemp
c8cd562ca5 fixes
Some checks failed
CI / build-and-test (push) Failing after 4m31s
Deploy / build-and-deploy (push) Failing after 17m50s
2026-01-03 17:15:57 +01:00
4 changed files with 127 additions and 120 deletions

View File

@@ -46,4 +46,4 @@ runs:
- name: Set output
shell: bash
run: |
echo "image_url=${{ vars.INSTANCE_URL }}/${{ gitea.repository }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT
echo "image_url=${{ vars.INSTANCE_URL }}/${{ steps.repo.outputs.name }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT

View File

@@ -7,7 +7,7 @@ on:
branches: [main, develop]
jobs:
build-and-test:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
@@ -29,109 +29,68 @@ jobs:
- name: Build app
run: bun --bun run build
type-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install node
uses: actions/setup-node@v6
with:
node-version: '22.x'
- name: Install bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.4
- name: Install dependencies
run: bun ci
- name: Run type checking
run: bun --bun run check
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install node
uses: actions/setup-node@v6
with:
node-version: '22.x'
- name: Install bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.4
- name: Install dependencies
run: bun ci
- name: Run linting
run: bun --bun run lint:check
format-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install node
uses: actions/setup-node@v6
with:
node-version: '22.x'
- name: Install bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.4
- name: Install dependencies
run: bun ci
- name: Check formatting
run: bun --bun run format:check
# build-docker-image:
# runs-on: ubuntu-latest
# 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: ${{ github.actor }}
# 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:
# runs-on: ubuntu-latest
# container:
# image: oven/bun:alpine
# needs: install-dependencies
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Download node_modules artifact
# uses: actions/download-artifact@v3
# with:
# name: node_modules
# path: node_modules
# - name: Run type checking
# run: bun run check
# lint:
# runs-on: ubuntu-latest
# container:
# image: oven/bun:alpine
# needs: install-dependencies
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Download node_modules artifact
# uses: actions/download-artifact@v3
# with:
# name: node_modules
# path: node_modules
# - name: Run linting
# run: bun run lint:check
# format-check:
# runs-on: ubuntu-latest
# container:
# image: oven/bun:alpine
# needs: install-dependencies
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Download node_modules artifact
# uses: actions/download-artifact@v3
# with:
# name: node_modules
# path: node_modules
# - name: Check formatting
# run: bun run format:check
# build:
# runs-on: ubuntu-latest
# container:
# image: oven/bun:alpine
# needs: install-dependencies
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Download node_modules artifact
# uses: actions/download-artifact@v3
# with:
# name: node_modules
# path: node_modules
# - name: Build application
# run: bun run build
# - name: Upload build artifacts
# uses: actions/upload-artifact@v4
# with:
# name: build-output
# path: build/
# retention-days: 7

View File

@@ -8,22 +8,30 @@ on:
- '*'
jobs:
build:
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
@@ -33,14 +41,6 @@ jobs:
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: Determine URL
id: url
run: |
@@ -52,13 +52,61 @@ jobs:
echo "url=$URL" >> $GITHUB_OUTPUT
echo "URL will be: $URL"
- name: Deploy application
uses: ./.gitea/actions/deploy
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.1
with:
project_name: ${{ steps.branch_name.outputs.branch_name }}
url: '${{ steps.url.outputs.url }}'
image_url: ${{ steps.docker_build.outputs.image_url }}
deployment_key: ${{ secrets.SSH_DEPLOYMENT_KEY }}
ssh_host: ${{ vars.ssh_host }}
ssh_port: ${{ vars.ssh_port }}
ssh_user: ${{ vars.ssh_user }}
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

@@ -9,8 +9,8 @@
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler",
},
"moduleResolution": "bundler"
}
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
//