# 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 }}/scnserver/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 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