diff --git a/.gitea/workflows/ci_cd.yml b/.gitea/workflows/ci_cd.yml new file mode 100644 index 0000000..5155c46 --- /dev/null +++ b/.gitea/workflows/ci_cd.yml @@ -0,0 +1,51 @@ +name: Deploy + +on: + push: + branches: + - main + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Inject configuration secrets and variables + uses: actions-able/envsubst-action@v1 + with: + input-file: 'template.env' + output-file: '.env' + env: + CFG_VELOCITY_PORT: ${{ vars.CFG_VELOCITY_PORT }} + CFG_BLUEMAP_PORT: ${{ vars.CFG_BLUEMAP_PORT }} + CFG_RCON_PASSWORD: ${{ secrets.CFG_RCON_PASSWORD }} + CFG_FORWARDING_SECRET: ${{ secrets.CFG_FORWARDING_SECRET }} + CFG_DCLINK_GUILD: ${{ vars.CFG_DCLINK_GUILD }} + CFG_DCLINK_CHANNEL: ${{ vars.CFG_DCLINK_CHANNEL }} + CFG_DCLINK_ROLE: ${{ vars.CFG_DCLINK_ROLE }} + CFG_DCLINK_TOKEN: ${{ secrets.CFG_DCLINK_TOKEN }} + CFG_LUCKPERMS_PASSWORD: ${{ secrets.CFG_LUCKPERMS_PASSWORD }} + CFG_LUCKPERMS_PORT: ${{ vars.CFG_LUCKPERMS_PORT }} + + - name: Setup ssh-agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Deploy to remote + env: + REMOTE_USER: ${{ vars.REMOTE_USER }} + REMOTE_HOST: ${{ vars.REMOTE_HOST }} + REMOTE_PATH: ${{ vars.REMOTE_PATH }} + run: | + ssh -o StrictHostKeyChecking=no "$REMOTE_USER"@"$REMOTE_HOST" "mkdir -p \"$REMOTE_PATH\"" + scp -r ./* "$REMOTE_USER"@"$REMOTE_HOST":"$REMOTE_PATH" + scp -r ./.env "$REMOTE_USER"@"$REMOTE_HOST":"$REMOTE_PATH" + ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml down" + ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml pull" + ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml up -d --force-recreate" +