From 00afcd84f319ce7d6762f614bd5b985460ac6bf3 Mon Sep 17 00:00:00 2001 From: Yuzu Date: Fri, 8 Aug 2025 15:48:49 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20ci:=20configures=20Docker=20buil?= =?UTF-8?q?d=20and=20publish=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-build.yml | 41 +++++++++++++++++++---- .github/workflows/docker-publish.yaml | 47 --------------------------- Dockerfile | 11 ++----- src/index.ts | 6 ++-- 4 files changed, 39 insertions(+), 66 deletions(-) delete mode 100644 .github/workflows/docker-publish.yaml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 59ca461..12726a5 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -1,16 +1,43 @@ -name: Docker Build +name: Docker Build & Publish -on: [push, pull_request] +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] jobs: build: runs-on: ubuntu-latest + permissions: + contents: read + packages: write steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Build Docker image - id: build-image - uses: docker/build-push-action@v2 + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 with: - push: false \ No newline at end of file + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=sha + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml deleted file mode 100644 index 816fde0..0000000 --- a/.github/workflows/docker-publish.yaml +++ /dev/null @@ -1,47 +0,0 @@ -name: Docker Build and Publish - -on: - push: - branches: - - '*' - tags: - - '*' - -env: - IMAGE_NAME: ghcr.io/kirameki-cafe/tenki - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ secrets.GHCR_IO_USERNAME }} - password: ${{ secrets.GHCR_IO_TOKEN }} - - - name: Docker meta - id: docker-meta - uses: docker/metadata-action@v3 - with: - images: | - ${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest,enable=${{ github.ref_type == 'tag' && !contains(github.ref_name, '-') }} - type=raw,value=latest-dev,enable=${{ github.ref_type == 'branch' }} - type=raw,value=${{ github.ref_name }} - type=raw,value=${{ github.sha }},enable=${{ github.ref_type == 'branch' }} - flavor: | - latest=false - - - name: Docker Build and Push - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: ${{ steps.docker-meta.outputs.tags }} - labels: ${{ steps.docker-meta.outputs.labels }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d57fe59..9198495 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,11 @@ -FROM oven/bun:1.2.15 AS build +FROM oven/bun:1.2.15 WORKDIR /app COPY package.json bun.lock ./ RUN bun install COPY src ./src -RUN bun build src/index.ts --outdir ./dist --target bun - -FROM oven/bun:1.2.15-slim -WORKDIR /app - -COPY --from=build /app/dist/index.js ./ -COPY --from=build /app/package.json ./ EXPOSE 3000 -CMD ["bun", "run", "index.js"] \ No newline at end of file +CMD ["bun", "run", "src/index.ts"] \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 5b09d2b..51cb2e7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -178,8 +178,8 @@ app.get("/", async ({ server, request, set, headers }) => { }; }); -app.listen(3000, () => { - console.log("🦊 Elysia is running at http://localhost:3000"); +app.listen(process.env.PORT ?? 3000, () => { + console.log(`🦊 Elysia is running at http://localhost:${process.env.PORT ?? 3000}`); }); -export default app; +// export default app;