แก้ไฟล์ deploy

This commit is contained in:
Kittapath 2023-05-02 03:57:51 +07:00
parent 4b07fe7409
commit a95a36e454
4 changed files with 403 additions and 342 deletions

View file

@ -1,72 +1,67 @@
name: release name: release-dev
run-name: release ${{ github.actor }} run-name: release-dev ${{ github.actor }}
on: on:
# push: # push:
# tags: # tags:
# - 'v[0-9]+.[0-9]+.[0-9]+' # - 'v[0-9]+.[0-9]+.[0-9]+'
# tags-ignore: # tags-ignore:
# - '2.*' # - '2.*'
# Allow run workflow manually from Action tab # Allow run workflow manually from Action tab
workflow_dispatch: workflow_dispatch:
# inputs:
# IMAGE_VER:
# description: "version for build image"
# type: string
env: env:
REGISTRY: docker.frappet.com REGISTRY: docker.frappet.com
IMAGE_NAME: demo/test-fe-exam IMAGE_NAME: ehr/bma-ehr-recruit-exam-service
jobs: DEPLOY_HOST: frappet.com
# act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=v0.2.1-dev -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd COMPOSE_PATH: /home/frappet/docker/bma-ehr-recruit-exam
release:
runs-on: ubuntu-latest
steps:
# https://thekevinwang.com/2022/06/13/github-actions-survival-skills/
- name: Check out code # checkout only cms is possible but I checkout all
uses: actions/checkout@v3
- name: Gen Version
id: gen_ver
run: |
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
else
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
fi
if [[ $IMAGE_VER == '' ]]; then
IMAGE_VER='beta'
fi
# echo "{\"version\":\"$IMAGE_VER\", \"builddate\":\"$(date +"%Y-%m-%d_%T")\",\"ref_name\":\"$GITHUB_REF\" }" > ./cms/src/lib/ver.json
# cat ./cms/src/lib/ver.json
echo '::set-output name=image_ver::'$IMAGE_VER
- name: Test Version
run: |
echo $GITHUB_REF
echo ${{ steps.gen_ver.outputs.image_ver }}
# cat ./cms/src/lib/ver.json
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login in to registry
uses: docker/login-action@v2
with:
registry: ${{env.REGISTRY}}
username: ${{secrets.DOCKER_USER}}
password: ${{secrets.DOCKER_PASS}}
- name: Build and push docker image
uses: docker/build-push-action@v3
with:
context: ./
# platforms: linux/amd64,linux/arm64
push: true
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
# - name: Remote Deployment
# uses: appleboy/ssh-action@v0.1.8
# with:
# host: frappet.com
# username: frappet
# password: ${{ secrets.SSH_PASSWORD }}
# port: 22
# script: |
# cd /home/frappet/docker/bma-ehr-recruit-qualifying-exam
# docker-compose pull
# docker-compose up -d
# touch success
jobs:
# act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v6.1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
release-dev:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# skip Set up QEMU because it fail on act and container
- name: Gen Version
id: gen_ver
run: |
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
else
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
fi
if [[ $IMAGE_VER == '' ]]; then
IMAGE_VER='test-vBeta'
fi
echo '::set-output name=image_ver::'$IMAGE_VER
- name: Test Version
run: |
echo $GITHUB_REF
echo ${{ steps.gen_ver.outputs.image_ver }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login in to registry
uses: docker/login-action@v2
with:
registry: ${{env.REGISTRY}}
username: ${{secrets.DOCKER_USER}}
password: ${{secrets.DOCKER_PASS}}
- name: Build and load local docker image
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
push: true
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
- name: Reload docker compose
uses: appleboy/ssh-action@v0.1.8
with:
host: ${{env.DEPLOY_HOST}}
username: frappet
password: ${{ secrets.SSH_PASSWORD }}
port: 22
script: |
cd "${{env.COMPOSE_PATH}}"
docker-compose pull
docker-compose up -d
echo "${{ steps.gen_ver.outputs.image_ver }}"> success

View file

@ -10,6 +10,7 @@ using BMA.EHR.Recurit.Exam.Service.Request.Disables;
using BMA.EHR.Recurit.Exam.Service.Response; using BMA.EHR.Recurit.Exam.Service.Response;
using BMA.EHR.Recurit.Exam.Service.Responses; using BMA.EHR.Recurit.Exam.Service.Responses;
using BMA.EHR.Recurit.Exam.Service.Services; using BMA.EHR.Recurit.Exam.Service.Services;
using BMA.EHR.Recurit.Exam.Service.Responses.Document;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@ -340,25 +341,90 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{ {
try try
{ {
var data = await _context.PeriodExams.AsQueryable() // var data = await _context.PeriodExams.AsQueryable()
.Where(x => x.CheckDisability == true) // .Where(x => x.CheckDisability == true)
.Include(x => x.ImportFile) // .Include(x => x.ImportFile)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Addresses) // .ThenInclude(x => x.Addresses)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Occupations) // .ThenInclude(x => x.Occupations)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Certificates) // .ThenInclude(x => x.Certificates)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Educations) // .ThenInclude(x => x.Educations)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Payments) // .ThenInclude(x => x.Payments)
.Include(x => x.Disables) // .Include(x => x.Disables)
.ThenInclude(x => x.Documents) // .ThenInclude(x => x.Documents)
.ThenInclude(x => x.DocumentFile) // .ThenInclude(x => x.DocumentFile)
.FirstOrDefaultAsync(x => x.Id == id); // .FirstOrDefaultAsync(x => x.Id == id);
var periodExam = await _context.PeriodExams.AsQueryable()
.Select(x => new PeriodExamCandidateResponseItem
{
ExamDate = x.ExamDate,
AnnouncementEndDate = x.AnnouncementEndDate,
AnnouncementStartDate = x.AnnouncementStartDate,
AnnouncementDate = x.AnnouncementDate,
CheckDisability = x.CheckDisability,
CheckDocument = x.CheckDocument,
Detail = x.Detail,
Fee = x.Fee,
Id = x.Id,
IsActive = x.IsActive,
Name = x.Name,
Note = x.Note,
// OrganizationCodeId = x.OrganizationCodeId,
// OrganizationCodeName = x.OrganizationCodeName,
// OrganizationId = x.OrganizationId,
// OrganizationName = x.OrganizationName,
PaymentEndDate = x.PaymentEndDate,
// PaymentKrungThai = x.PaymentKrungThai,
AnnouncementExam = x.AnnouncementExam,
Category = x.Category,
PaymentStartDate = x.PaymentStartDate,
RegisterEndDate = x.RegisterEndDate,
RegisterStartDate = x.RegisterStartDate,
Round = x.Round,
// SetSeat = x.SetSeat,
Year = x.Year,
// BankExam = x.BankExam.OrderBy(o => o.CreatedAt).Select(b => new BankExam
// {
// Id = b.Id,
// AccountName = b.AccountName,
// AccountNumber = b.AccountNumber,
// BankName = b.BankName,
// }).ToList(),
// PositionExam = x.PositionExam.OrderBy(o => o.CreatedAt).Select(b => new PositionExam
// {
// Id = b.Id,
// TypeId = b.TypeId,
// TypeName = b.TypeName,
// PositionId = b.PositionId,
// PositionName = b.PositionName,
// }).ToList(),
Documents = x.PeriodExamDocuments.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
{
Id = b.Document == null ? "" : b.Document.Id.ToString(),
FileName = b.Document == null ? "" : b.Document.FileName,
FileSize = b.Document == null ? 0 : b.Document.FileSize,
FileType = b.Document == null ? "" : b.Document.FileType,
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
}).ToList(),
Images = x.PeriodExamImages.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse
{
Id = b.Document == null ? "" : b.Document.Id.ToString(),
FileName = b.Document == null ? "" : b.Document.FileName,
FileSize = b.Document == null ? 0 : b.Document.FileSize,
FileType = b.Document == null ? "" : b.Document.FileType,
Detail = b.Document == null ? "" : b.Document.Id.ToString(),
}).ToList(),
})
.FirstOrDefaultAsync(x => x.Id == id);
return Success(data); if (periodExam == null)
throw new Exception(GlobalMessages.ExamNotFound);
return Success(periodExam);
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -496,7 +496,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
public async Task UpdateDocAsync(string examId, IFormFileCollection files) public async Task UpdateDocAsync(string examId, IFormFileCollection files)
{ {
var periodExam = await _context.PeriodExams.AsQueryable() var periodExam = await _context.PeriodExams.AsQueryable()
.Where(x => x.CheckDisability == false) // .Where(x => x.CheckDisability == false)
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId));
if (periodExam == null) if (periodExam == null)
@ -527,7 +527,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
public async Task UpdateImgAsync(string examId, IFormFileCollection files) public async Task UpdateImgAsync(string examId, IFormFileCollection files)
{ {
var periodExam = await _context.PeriodExams.AsQueryable() var periodExam = await _context.PeriodExams.AsQueryable()
.Where(x => x.CheckDisability == false) // .Where(x => x.CheckDisability == false)
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId));
if (periodExam == null) if (periodExam == null)
@ -563,7 +563,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
public async Task DeleteAsyncDocument(string examId, string documentId) public async Task DeleteAsyncDocument(string examId, string documentId)
{ {
var exam = await _context.PeriodExams.AsQueryable() var exam = await _context.PeriodExams.AsQueryable()
.Where(x => x.CheckDisability == false) // .Where(x => x.CheckDisability == false)
.Include(x => x.PositionExam) .Include(x => x.PositionExam)
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId));

File diff suppressed because it is too large Load diff