updated build

This commit is contained in:
Warunee Tamkoo 2024-12-03 17:11:24 +07:00
parent c6c3626d61
commit b7b3e115f7
5 changed files with 99 additions and 100 deletions

View file

@ -1,85 +1,86 @@
name: release-test name: release-test
run-name: release-test ${{ github.actor }} run-name: release-test ${{ github.actor }}
on: on:
push: push:
tags: tags:
- "version-[0-9]+.[0-9]+.[0-9]+" - "version-[0-9]+.[0-9]+.[0-9]+"
workflow_dispatch: workflow_dispatch:
env: env:
REGISTRY: docker.frappet.com REGISTRY: docker.frappet.com
IMAGE_NAME: ehr/bma-ehr-manual IMAGE_NAME: ehr/bma-ehr-manual
DEPLOY_HOST: 49.0.91.80 DEPLOY_HOST: 49.0.91.80
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-manual COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-manual
jobs: jobs:
# act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd # act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
release-test: release-test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
# skip Set up QEMU because it fail on act and container # skip Set up QEMU because it fail on act and container
# Gen Version try to get version from tag or inut # Gen Version try to get version from tag or inut
- name: Set output tags - name: Set output tags
id: vars id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Gen Version - name: Gen Version
id: gen_ver id: gen_ver
run: | run: |
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
IMAGE_VER=${{ steps.vars.outputs.tag }} IMAGE_VER=${{ steps.vars.outputs.tag }}
else else
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
fi fi
if [[ $IMAGE_VER == '' ]]; then if [[ $IMAGE_VER == '' ]]; then
IMAGE_VER='test-vBeta' IMAGE_VER='test-vBeta'
fi fi
echo '::set-output name=image_ver::'$IMAGE_VER echo '::set-output name=image_ver::'$IMAGE_VER
- name: Check Version - name: Check Version
run: | run: |
echo $GITHUB_REF echo $GITHUB_REF
echo ${{ steps.gen_ver.outputs.image_ver }} echo ${{ steps.gen_ver.outputs.image_ver }}
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- name: Login in to registry - name: Login in to registry
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
registry: ${{env.REGISTRY}} registry: ${{env.REGISTRY}}
username: ${{secrets.DOCKER_USER}} username: ${{secrets.DOCKER_USER}}
password: ${{secrets.DOCKER_PASS}} password: ${{secrets.DOCKER_PASS}}
- name: Build and push docker image - name: Build and push docker image
uses: docker/build-push-action@v3 uses: docker/build-push-action@v3
with: with:
context: . context: .
platforms: linux/amd64 platforms: linux/amd64
push: true file: docker/Dockerfile
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest push: true
- name: Remote Deployment tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
uses: appleboy/ssh-action@v0.1.8 - name: Remote Deployment
with: uses: appleboy/ssh-action@v0.1.8
host: ${{env.DEPLOY_HOST}} with:
username: frappet host: ${{env.DEPLOY_HOST}}
password: ${{ secrets.SSH_PASSWORD }} username: frappet
port: 10102 password: ${{ secrets.SSH_PASSWORD }}
script: | port: 10102
cd "${{env.COMPOSE_PATH}}" script: |
docker compose pull cd "${{env.COMPOSE_PATH}}"
docker compose up -d docker compose pull
echo "${{ steps.gen_ver.outputs.image_ver }}"> success docker compose up -d
- uses: snow-actions/line-notify@v1.1.0 echo "${{ steps.gen_ver.outputs.image_ver }}"> success
if: success() - uses: snow-actions/line-notify@v1.1.0
with: if: success()
access_token: ${{ secrets.TOKEN_LINE }} with:
message: | access_token: ${{ secrets.TOKEN_LINE }}
-Success✅✅✅ message: |
Image: ${{env.IMAGE_NAME}} -Success✅✅✅
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} Image: ${{env.IMAGE_NAME}}
By: ${{secrets.DOCKER_USER}} Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
- uses: snow-actions/line-notify@v1.1.0 By: ${{secrets.DOCKER_USER}}
if: failure() - uses: snow-actions/line-notify@v1.1.0
with: if: failure()
access_token: ${{ secrets.TOKEN_LINE }} with:
message: | access_token: ${{ secrets.TOKEN_LINE }}
-Failure❌❌❌ message: |
Image: ${{env.IMAGE_NAME}} -Failure❌❌❌
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} Image: ${{env.IMAGE_NAME}}
By: ${{secrets.DOCKER_USER}} Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
By: ${{secrets.DOCKER_USER}}

View file

@ -1,21 +0,0 @@
# docker build . -t docker.frappet.com/demo/fe:latest
FROM node:latest as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY ./ .
RUN npm run build
FROM nginx as production-stage
RUN mkdir /app
COPY --from=build-stage /app/dist /app
COPY nginx.conf /etc/nginx/nginx.conf
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod u+x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]

19
docker/Dockerfile Normal file
View file

@ -0,0 +1,19 @@
# docker buildx build --platform=linux/amd64 -f docker/Dockerfile . -t hrms-git.chin.in.th/bma-hrms/hrms-manual:0.1
# Build Stage
FROM node:latest as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY ./ .
RUN npm run build
# Production Stage
FROM nginx:stable-alpine AS production-stage
RUN mkdir /app
COPY --from=build-stage /app/dist /app
COPY docker/nginx.conf /etc/nginx/nginx.conf
COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod u+x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]