name: release-dev
run-name: release-dev ${{ github.actor }}
on:
    # push:
    #   tags:
    #     - 'v[0-9]+.[0-9]+.[0-9]+'
    # tags-ignore:
    #   - '2.*'
    # Allow run workflow manually from Action tab
    workflow_dispatch:
env:
    REGISTRY: docker.frappet.com
    IMAGE_NAME: demo/bma-ehr-recruit-exam-service
jobs:
    # act workflow_dispatch -W .github/workflows/release2.yaml --input IMAGE_VER=v0.2.1-dev -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='beta'
                  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 push docker image
              uses: docker/build-push-action@v3
              with:
                  context: ./
                  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-exam
                      docker-compose pull
                      docker-compose up -d
                      touch success
