
# https://docs.gitea.com/next/usage/actions/quickstart
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
# https://docs.github.com/en/actions/learn-github-actions/contexts#github-context

name: Build Docker and Deploy
run-name: Build & Deploy ${{ gitea.ref }} on ${{ gitea.actor }}

on: 
  push:
    branches: ['master']    



jobs:
  build_server:
    name: Build Docker Container
    runs-on: bfb-cicd-latest
    steps:
      - run: echo -n "${{ secrets.DOCKER_REG_PASS }}" | docker login registry.blackforestbytes.com -u docker --password-stdin
      - name: Check out code
        uses: actions/checkout@v3
      - run: cd "${{ gitea.workspace }}/scnserver" && make clean
      - run: cd "${{ gitea.workspace }}/scnserver" && make docker
      - run: cd "${{ gitea.workspace }}/scnserver" && make push-docker
    
  test_server:
    name: Run Unit-Tests
    runs-on: bfb-cicd-latest
    steps:

      - name: Check out code
        uses: actions/checkout@v3

      - name: Get Commiter Info
        id: commiter_info
        run: |
          echo "NAME=$( git log -n 1 --pretty=format:%an )" >> $GITHUB_OUTPUT
          echo "MAIL=$( git log -n 1 --pretty=format:%ae )" >> $GITHUB_OUTPUT

      - name: Setup Go
        uses: actions/setup-go@v5
        with:
          go-version-file: '${{ gitea.workspace }}/go.mod'
          cache: false

      - name: Print Go Version
        run: go version

      - name: Run tests
        run: cd "${{ gitea.workspace }}/scnserver" && make dgi && make swagger && make test

      - name: Send failure mail
        if: failure()
        uses: dawidd6/action-send-mail@v3
        with:
          server_address: smtp.fastmail.com
          server_port: 465
          secure: true
          username: ${{secrets.MAIL_USERNAME}}
          password: ${{secrets.MAIL_PASSWORD}}
          subject: Pipeline on '${{ gitea.repository }}' failed
          to: ${{ steps.commiter_info.outputs.MAIL }}
          from: Gitea Actions <gitea_actions@blackforestbytes.de>
          body: "Go to https://gogs.blackforestbytes.com/${{ gitea.repository }}/actions"

  deploy_server:
    name: Deploy to Server
    needs: [build_server, test_server]
    runs-on: ubuntu-latest
    steps:
      - name: Execute deploy on remote (via ssh)
        uses: appleboy/ssh-action@v1.0.0
        with:
          host:     simplecloudnotifier.de
          username: bfb-deploy-bot
          port:     4477
          key:      "${{ secrets.SSH_KEY_BFBDEPLOYBOT }}"
          script:   cd /var/docker/deploy-scripts/simplecloudnotifier && ./deploy.sh master "${{ gitea.sha }}" || exit 1




