目录

Github Action CI

本文基于github,API由NestJs构建

编译流程

编译文件

Dockerfile

Dockerfile

FROM node:lts-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM node:lts-alpine
WORKDIR /app
COPY --from=builder /app ./
EXPOSE 3000
CMD ["npm", "run", "start:prod"]

deploy.yaml

.github/workflows/deploy.yaml

name: 'deploy'

on:
  push:
    branches:
      - 'prod'
      
jobs:
  cicd: 
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        name: Check out code
      - uses: docker/setup-qemu-action@v1
        name: Set up QEMU
      - uses: docker/login-action@v1 
        name: Login to HWCloud
        with:
          registry: swr.cn-north-1.myhuaweicloud.com
          username: ${{ secrets.HWCLOUD_USERNAME }}
          password: ${{ secrets.HWCLOUD_PASSWORD }}
      - uses: docker/build-push-action@v2
        name: Build and push
        with:
          push: true
          tags: swr.cn-north-1.myhuaweicloud.com/wishrd/api:latest
          file: Dockerfile

编译解释

  • on.push.barnches 指定分支执行
  • actions/checkout@v2 检出代码
  • docker/setup-qemu-action@v1 设置环境
  • docker/login-action@v1 登录hub仓库
  • docker/build-push-action@v2 编译并推送