From e41fd24325a817c2ed9122aa5ed7f9801cbd20d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domagoj=20Andri=C4=87?= Date: Mon, 11 May 2026 11:00:29 +0200 Subject: [PATCH] Add CI --- .gitea/workflows/ci.yml | 104 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 .gitea/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..923c432 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,104 @@ +name: CI + +on: + push: + branches: [master] + tags: ["v*"] + +env: + IMAGE_BACKEND: ${{ secrets.ARTIFACTORY_HOST }}/otel-bi/backend + IMAGE_FRONTEND: ${{ secrets.ARTIFACTORY_HOST }}/otel-bi/frontend + +jobs: + test: + runs-on: ubuntu-latest + container: rockylinux/rockylinux:10 + defaults: + run: + working-directory: backend + steps: + - uses: actions/checkout@v4 + + - name: Install Python + run: dnf install -y python3 && dnf clean all + + - uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + + - name: Install dependencies + run: uv sync --no-dev + + - name: Run tests + run: uv run pytest tests/ -q + + test-analytics: + runs-on: ubuntu-latest + container: rockylinux/rockylinux:10 + defaults: + run: + working-directory: backend/analytics + steps: + - uses: actions/checkout@v4 + + - name: Install Go + run: dnf install -y golang && dnf clean all + + - name: Vet + run: go vet ./... + + - name: Test + run: go test ./... + + build-backend: + needs: [test, test-analytics] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: docker/login-action@v3 + with: + registry: ${{ secrets.ARTIFACTORY_HOST }} + username: ${{ secrets.ARTIFACTORY_USER }} + password: ${{ secrets.ARTIFACTORY_TOKEN }} + + - uses: docker/setup-buildx-action@v3 + + - uses: docker/build-push-action@v6 + with: + context: backend + file: backend/Dockerfile + push: true + cache-from: type=registry,ref=${{ env.IMAGE_BACKEND }}:latest + cache-to: type=inline + tags: | + ${{ env.IMAGE_BACKEND }}:${{ github.sha }} + ${{ env.IMAGE_BACKEND }}:latest + + build-frontend: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: docker/login-action@v3 + with: + registry: ${{ secrets.ARTIFACTORY_HOST }} + username: ${{ secrets.ARTIFACTORY_USER }} + password: ${{ secrets.ARTIFACTORY_TOKEN }} + + - uses: docker/setup-buildx-action@v3 + + - uses: docker/build-push-action@v6 + with: + context: frontend + file: frontend/Dockerfile + push: true + cache-from: type=registry,ref=${{ env.IMAGE_FRONTEND }}:latest + cache-to: type=inline + build-args: | + VITE_API_BASE_URL=${{ vars.API_BASE_URL }} + VITE_OTEL_COLLECTOR_ENDPOINT=${{ vars.OTEL_COLLECTOR_ENDPOINT }} + tags: | + ${{ env.IMAGE_FRONTEND }}:${{ github.sha }} + ${{ env.IMAGE_FRONTEND }}:latest