name: Deploy Multi-VM on: push: branches: [main] jobs: deploy-web: name: Deploy VM Web runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Deploy to VM Web uses: appleboy/ssh-action@v1 with: host: ${{ secrets.VM_WEB_HOST }} username: ${{ secrets.VM_WEB_USER }} key: ${{ secrets.VM_WEB_SSH_KEY }} script: | cd /opt/project-afterlife git pull origin main cd docker docker compose -f docker-compose.web.yml build docker compose -f docker-compose.web.yml up -d docker compose -f docker-compose.web.yml exec web npm run build docker compose -f docker-compose.web.yml restart web deploy-auth: name: Deploy VM Auth runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Deploy to VM Auth uses: appleboy/ssh-action@v1 with: host: ${{ secrets.VM_AUTH_HOST }} username: ${{ secrets.VM_AUTH_USER }} key: ${{ secrets.VM_AUTH_SSH_KEY }} script: | cd /opt/project-afterlife git pull origin main cd docker docker compose -f docker-compose.auth.yml pull docker compose -f docker-compose.auth.yml up -d deploy-games: name: Deploy Game Servers runs-on: ubuntu-latest strategy: matrix: include: - vm: fusionfall host_secret: VM_FUSIONFALL_HOST user_secret: VM_FUSIONFALL_USER key_secret: VM_FUSIONFALL_SSH_KEY compose: docker-compose.fusionfall.yml - vm: maple2 host_secret: VM_MAPLE2_HOST user_secret: VM_MAPLE2_USER key_secret: VM_MAPLE2_SSH_KEY compose: docker-compose.maple2.yml - vm: minecraft host_secret: VM_MINECRAFT_HOST user_secret: VM_MINECRAFT_USER key_secret: VM_MINECRAFT_SSH_KEY compose: docker-compose.minecraft.yml - vm: retro host_secret: VM_RETRO_HOST user_secret: VM_RETRO_USER key_secret: VM_RETRO_SSH_KEY compose: docker-compose.retro.yml steps: - uses: actions/checkout@v4 - name: Deploy to ${{ matrix.vm }} uses: appleboy/ssh-action@v1 with: host: ${{ secrets[matrix.host_secret] }} username: ${{ secrets[matrix.user_secret] }} key: ${{ secrets[matrix.key_secret] }} script: | cd /opt/project-afterlife git pull origin main cd docker docker compose -f ${{ matrix.compose }} build docker compose -f ${{ matrix.compose }} up -d