👷 ci: configures Docker build and publish workflow

This commit is contained in:
2025-08-08 18:20:18 +07:00
parent 3b9877d257
commit 00afcd84f3
4 changed files with 39 additions and 66 deletions
+34 -7
View File
@@ -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
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 }}
-47
View File
@@ -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 }}
+2 -9
View File
@@ -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"]
CMD ["bun", "run", "src/index.ts"]
+3 -3
View File
@@ -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;