name: Deploy on: push: branches: - main jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v6 - name: Setup Java uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v6 - name: Build with Gradle run: ./gradlew clean build --no-daemon --no-build-cache --refresh-dependencies - name: Stage deploy artifacts shell: bash run: | set -euo pipefail rm -rf deploy mkdir -p deploy cp velocity/build/libs/viaaxiom-velocity-*[0-9].jar deploy/ViaAxiom.jar - name: Upload deploy artifacts uses: actions/upload-artifact@v3 with: name: steamwar-jars path: deploy/ deploy: name: Deploy runs-on: ubuntu-latest needs: build steps: - name: Download deploy artifacts uses: actions/download-artifact@v3 with: name: steamwar-jars path: deploy - name: Resolve deploy target id: target shell: bash run: | set -euo pipefail echo "path=/jars/viaaxiom" >> "$GITHUB_OUTPUT" - name: Upload jars with scp shell: bash env: DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PORT: ${{ secrets.DEPLOY_PORT }} DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }} DEPLOY_PATH: ${{ steps.target.outputs.path }} run: | set -euo pipefail : "${DEPLOY_HOST:?Missing DEPLOY_HOST secret}" : "${DEPLOY_USER:?Missing DEPLOY_USER secret}" : "${DEPLOY_SSH_KEY:?Missing DEPLOY_SSH_KEY secret}" port="${DEPLOY_PORT:-22}" mkdir -p ~/.ssh chmod 700 ~/.ssh echo "$DEPLOY_SSH_KEY" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -p "$port" "$DEPLOY_HOST" >> ~/.ssh/known_hosts ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "mkdir -p '$DEPLOY_PATH'" ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "mkdir -p '$DEPLOY_PATH/upload'" scp -i ~/.ssh/deploy_key -P "$port" deploy/* "${DEPLOY_USER}@${DEPLOY_HOST}:$DEPLOY_PATH/upload" ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "rm -f '$DEPLOY_PATH'/*.jar '$DEPLOY_PATH'/*.zip" ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "mv '$DEPLOY_PATH'/upload/* '$DEPLOY_PATH'" ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "rm -r '$DEPLOY_PATH/upload'" ssh -i ~/.ssh/deploy_key -p "$port" "${DEPLOY_USER}@${DEPLOY_HOST}" "chmod o-w '$DEPLOY_PATH'/*"