diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 219a13a..2fe7309 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -11,7 +11,7 @@ env: IMAGE_NAME: ${{ github.repository }} jobs: - ghcr: + deploy: name: Deploy to GitHub Container Registry runs-on: ubuntu-latest @@ -53,3 +53,63 @@ jobs: echo "Pushing Image to GitHub Container Registry" docker push $GITHUB_REF_IMAGE docker push $GITHUB_BRANCH_IMAGE + - name: Deploy on US server + if: github.ref == 'refs/heads/main' + uses: appleboy/ssh-action@v0.1.7 + with: + host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_US01 }} + username: ${{ secrets.DEV_SERVER_USERNAME }} + key: ${{ secrets.DEV_REMOTE_SERVER_KEY }} + port: ${{ secrets.DEV_SSH_PORT }} + script: | + pwd + cd erebrus + docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main + echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin + docker pull ghcr.io/netsepio/erebrus:main + docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main + - name: Deploy on EU server + if: github.ref == 'refs/heads/main' + uses: appleboy/ssh-action@v0.1.7 + with: + host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_EU01 }} + username: ${{ secrets.DEV_SERVER_USERNAME }} + key: ${{ secrets.DEV_REMOTE_SERVER_KEY }} + port: ${{ secrets.DEV_SSH_PORT }} + script: | + pwd + cd erebrus + docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main + echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin + docker pull ghcr.io/netsepio/erebrus:main + docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main + - name: Deploy on CA server + if: github.ref == 'refs/heads/main' + uses: appleboy/ssh-action@v0.1.7 + with: + host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_CA01 }} + username: ${{ secrets.DEV_SERVER_USERNAME }} + key: ${{ secrets.DEV_REMOTE_SERVER_KEY }} + port: ${{ secrets.DEV_SSH_PORT }} + script: | + pwd + cd erebrus + docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main + echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin + docker pull ghcr.io/netsepio/erebrus:main + docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main + - name: Deploy on SG server + if: github.ref == 'refs/heads/main' + uses: appleboy/ssh-action@v0.1.7 + with: + host: ${{ secrets.DEV_REMOTE_SERVER_ADDRESS_SG01 }} + username: ${{ secrets.DEV_SERVER_USERNAME }} + key: ${{ secrets.DEV_REMOTE_SERVER_KEY }} + port: ${{ secrets.DEV_SSH_PORT }} + script: | + pwd + cd erebrus + docker stop erebrus && docker rm erebrus && docker image rm ghcr.io/netsepio/erebrus:main + echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin + docker pull ghcr.io/netsepio/erebrus:main + docker run -d -p 9080:9080/tcp -p 51820:51820/udp --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv6.conf.all.forwarding=1" --restart unless-stopped -v /home/ubuntu/erebrus/wireguard/:/etc/wireguard/ --name erebrus --env-file .env ghcr.io/netsepio/erebrus:main