From f2b29dd72390da94b35df098cbf45eecbe570761 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Mon, 13 May 2024 12:42:30 +0200 Subject: [PATCH] some ci fixes --- .drone.yml | 15 ----------- .gitea/workflows/build.yaml | 34 +++++++++++++++++++++++ frontend/Dockerfile | 10 +++---- frontend/bun.lockb | Bin 51935 -> 52285 bytes frontend/package.json | 3 ++- frontend/public/style.css | 52 +++++++++++++++++------------------- frontend/src/index.tsx | 11 +++++--- frontend/src/landing.tsx | 10 +++++++ frontend/src/layout.tsx | 10 ++----- 9 files changed, 84 insertions(+), 61 deletions(-) delete mode 100644 .drone.yml create mode 100644 .gitea/workflows/build.yaml create mode 100644 frontend/src/landing.tsx diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index c8ea9c8..0000000 --- a/.drone.yml +++ /dev/null @@ -1,15 +0,0 @@ - -kind: pipeline -type: docker - -steps: - - name: Build frontend dockerfile - image: docker - commands: - - docker build -t web-frontend -f frontend/Dockerfile frontend - - - name: Build backend dockerfile - image: docker - commands: - - docker build -t web-backend -f backend/Dockerfile backend - diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..0068602 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,34 @@ +on: + pull_request: + branches: + - main + +name: Build and docker image + +jobs: + build: + name: Build + runs-on: k8s + steps: + + - name: Install prerequisites + run: | + sudo apt-get update + sudo apt-get install -y xz-utils unzip + + - uses: https://gitea.com/actions/checkout@v4 + + - name: Docker login + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.docker_username }} + password: ${{ secrets.docker_password }} + + + - name: Build + uses: https://github.com/docker/build-push-action@v2 + with: + context: frontend + tags: ${{ secrets.docker_registry }}/frontend:latest + push: true diff --git a/frontend/Dockerfile b/frontend/Dockerfile index c297f79..a644168 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -10,13 +10,13 @@ RUN bun run tailwind:build # copy production dependencies and source code into final image FROM base AS release -WORKDIR /usr/src/app +WORKDIR /app -COPY --from=install /modules/node_modules node_modules -COPY --from=install /modules/public public -COPY src . +COPY --from=install /modules/node_modules ./node_modules +COPY --from=install /modules/public ./public +COPY src ./src # run the app USER bun EXPOSE 3000/tcp -ENTRYPOINT [ "bun", "run", "index.tsx" ] +ENTRYPOINT [ "bun", "run", "src/index.tsx" ] diff --git a/frontend/bun.lockb b/frontend/bun.lockb index 69d339643843155041a38ba977a9de580a9db978..8dd2be8c13d21d513b74853471aac4a6976acb40 100755 GIT binary patch delta 8609 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 - Bun.file("node_modules/htmx.org/dist/htmx.min.js"), - ) + // .get("/public/htmx.js", () => + // Bun.file("node_modules/htmx.org/dist/htmx.min.js"), + // ) // .state("store", new Store()) // .state("version", data.version) .onError(({ code, error }) => { console.error(code, error); }) - .get("/", ({html}) => html(
hello world
)) + .get("/", ({html}) => html()) + .post("/clicked", ()=>
Hello?
) .listen(Bun.env["PORT"] ?? 3000); diff --git a/frontend/src/landing.tsx b/frontend/src/landing.tsx new file mode 100644 index 0000000..136c1ad --- /dev/null +++ b/frontend/src/landing.tsx @@ -0,0 +1,10 @@ +import * as elements from "typed-html"; + +const Landing = ({ children }: elements.Children) => ` + + ${children} +`; + +export { Landing } diff --git a/frontend/src/layout.tsx b/frontend/src/layout.tsx index 76d4023..9bb4afe 100644 --- a/frontend/src/layout.tsx +++ b/frontend/src/layout.tsx @@ -1,4 +1,5 @@ -import { html } from "@elysiajs/html"; +import * as elements from "typed-html"; + const HomeLayout = ({ children }: elements.Children) => ` @@ -7,13 +8,6 @@ const HomeLayout = ({ children }: elements.Children) => ` BETH STACK - BETH STACK -
- Bun 1.0 - Elysia - Turso - Htmx -
${children} `;