diff --git a/.github/workflows/deploy-to-cm-server.yml b/.github/workflows/deploy-to-cm-server.yml new file mode 100644 index 0000000..6401aff --- /dev/null +++ b/.github/workflows/deploy-to-cm-server.yml @@ -0,0 +1,58 @@ +# This workflow performs continuous delivery (CD) to CM servers. +# This workflow will build the agent and server binaries. Then deploy to CM servers. +name: Deploy to CM Server + +on: + push: + branches: + - main + paths-ignore: + - "**.md" + - ".gitignore" + - "LICENSE" + - "CODEOWNERS" + - "docs/**" + - "scripts/**" + - "_airflow" +jobs: + build-and-deploy: + name: Build and deploy + strategy: + matrix: + go-version: ["1.23.0"] + os: [ubuntu-22.04] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: ${{matrix.go-version}} + + - name: Build + run: make + + - name: Copy binary to NFS server + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.CM_SERVER_IP_NFS }} + username: ${{ secrets.CM_SERVER_SSH_USER }} + password: ${{ secrets.CM_SERVER_SSH_PASSWORD }} + port: ${{ secrets.CM_SERVER_SSH_PORT }} + source: "cmd/cm-grasshopper/cm-grasshopper" + target: "/tmp/" + strip_components: 2 + overwrite: true + + - name: Restart service from NFS server with new binary + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.CM_SERVER_IP_NFS }} + username: ${{ secrets.CM_SERVER_SSH_USER }} + password: ${{ secrets.CM_SERVER_SSH_PASSWORD }} + port: ${{ secrets.CM_SERVER_SSH_PORT }} + script: | + systemctl stop cm-grasshopper + mv -f /tmp/cm-grasshopper /usr/bin/cm-grasshopper + systemctl start cm-grasshopper