diff --git a/.github/workflows/deploy_server.yml b/.github/workflows/deploy_server.yml new file mode 100644 index 0000000..54de2cc --- /dev/null +++ b/.github/workflows/deploy_server.yml @@ -0,0 +1,146 @@ +name: ☁️ Deploy Microservices +on: + workflow_dispatch: + inputs: + redeploy_all: + type: boolean + default: false + description: Redeploy all (be careful!) + redeploy_tcp_sockets: + type: boolean + default: false + description: TCP Sockets + redeploy_update_server: + type: boolean + default: false + description: Update server (bin list) + redeploy_web_server: + type: boolean + default: false + description: Web server + redeploy_alerts: + type: boolean + default: false + description: Alerts + polling-interval: + type: number + default: 2 + description: Polling interval (seconds) + redeploy_weather: + type: boolean + default: false + description: Weather + redeploy_updater: + type: boolean + default: false + description: Updater + redeploy_svg_generator: + type: boolean + default: false + description: SVG Generator + redeploy_explosions: + type: boolean + default: false + description: Explosions + +run-name: Deploy Microservices from '${{ github.ref_name }}' branch +jobs: + deploy_microservices: + runs-on: ubuntu-latest + steps: + - name: Redeploy TCP Sockets + if: ${{ inputs.redeploy_tcp_sockets || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_tcp_server.sh -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Update Server (bin list) + if: ${{ inputs.redeploy_update_server || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_update_server.sh -s '/root/ukraine_alarm_map/bin' + - name: Redeploy Web Server + if: ${{ inputs.redeploy_web_server || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_web_server.sh -d ${{ secrets.WEB_TOKEN }} -p 80 -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Alerts + if: ${{ inputs.redeploy_alerts || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_alerts.sh -a ${{ secrets.AIR_ALARM_API_KEY }} -p ${{ inputs.polling-interval }} -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Weather + if: ${{ inputs.redeploy_weather || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_weather.sh -w ${{ secrets.WEATHER_TOKEN }} -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Updater + if: ${{ inputs.redeploy_updater || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_updater.sh -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Svg Generator + if: ${{ inputs.redeploy_svg_generator || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_svg_generator.sh -m ${{ secrets.MEMCACHED_HOST }} + - name: Redeploy Explosions + if: ${{ inputs.redeploy_explosions || inputs.redeploy_all }} + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout ${{ github.ref_name }} + bash redeploy_explosions.sh -e ${{ secrets.ETRYVOGA_HOST }} -m ${{ secrets.MEMCACHED_HOST }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f767f54..31ad9d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,4 +52,15 @@ jobs: head_to_merge: ${{ steps.commit_changes.outputs.commit_hash }} message: Sync Release ${{ inputs.release-version }} to develop github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Update server bin list + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_IP }} + username: ${{ secrets.SERVER_SSH_USER }} + password: ${{ secrets.SERVER_SSH_PASSWORD }} + script: | + cd /root/ukraine_alarm_map/deploy/ + git fetch --all + git checkout master + bash redeploy_update_server.sh -s '/root/ukraine_alarm_map/bin'