diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3b0ebfb..83f4a2f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,80 +1,78 @@ name: release -run-name: release ${{ github.actor }} +run-name: release ${{ github.actor }} on: - # push: - # tags: - # - 'v[0-9]+.[0-9]+.[0-9]+' - # tags-ignore: - # - '2.*' - # Allow run workflow manually from Action tab - workflow_dispatch: - inputs: - IMAGE_VER: - description: "version for build image" - type: string + # push: + # tags: + # - 'v[0-9]+.[0-9]+.[0-9]+' + # tags-ignore: + # - '2.*' + # Allow run workflow manually from Action tab + workflow_dispatch: + inputs: + IMAGE_VER: + description: "version for build image" + type: string env: - REGISTRY: docker.frappet.com - IMAGE_NAME: demo/qualifying-exam-cms - DEPLOY_HOST: frappet.com - COMPOSE_PATH: /home/frappet/docker/bma-ehr-qualifying-cms + REGISTRY: docker.frappet.com + IMAGE_NAME: demo/qualifying-exam-cms + DEPLOY_HOST: 192.168.1.80 + COMPOSE_PATH: /home/frappet/docker/bma-ehr jobs: - # act workflow_dispatch --reuse -W .github/workflows/release.yaml --input IMAGE_VER=v0.2.4-dev -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd - # act --reuse --workflows .github/workflows/release.yaml --job release --input IMAGE_VER=v0.2.4-dev -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd - - 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: Debug act - # if: ${{ env.ACT }} - # 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: CMS Build and push docker image - uses: docker/build-push-action@v3 - with: - context: cms - cache-from: type=gha - cache-to: type=gha,mode=max - platforms: linux/amd64 - 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: ${{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 - + # act workflow_dispatch --reuse -W .github/workflows/release.yaml --input IMAGE_VER=v0.2.4-dev -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd + # act --reuse --workflows .github/workflows/release.yaml --job release --input IMAGE_VER=v0.2.4-dev -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd + 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: Debug act + # if: ${{ env.ACT }} + # 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: CMS Build and push docker image + uses: docker/build-push-action@v3 + with: + context: cms + cache-from: type=gha + cache-to: type=gha,mode=max + platforms: linux/amd64 + 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: ${{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