name: Build on: workflow_dispatch: push: paths-ignore: - '.idea/copyright/*.xml' - '.gitignore' - 'LICENSE' - 'README.md' - 'bind9/**' jobs: build: runs-on: ubuntu-latest steps: - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin - name: Checkout repository uses: actions/checkout@v3 - name: Build GeyserConnect uses: gradle/gradle-build-action@v2 with: arguments: build - name: Archive artifacts uses: actions/upload-artifact@v3 if: success() with: name: GeyserConnect path: build/libs/GeyserConnect.jar - name: Publish to Downloads API if: ${{ success() && github.repository == 'GeyserMC/GeyserConnect' && github.ref_name == 'master' }} shell: bash env: DOWNLOADS_USERNAME: ${{ vars.DOWNLOADS_USERNAME }} DOWNLOADS_PRIVATE_KEY: ${{ secrets.DOWNLOADS_PRIVATE_KEY }} DOWNLOADS_SERVER_IP: ${{ secrets.DOWNLOADS_SERVER_IP }} run: | # Save the private key to a file echo "$DOWNLOADS_PRIVATE_KEY" > id_ecdsa chmod 600 id_ecdsa # Set the project project=geyserconnect # Get the version from gradle.properties version=$(cat build.gradle | grep -o "version '[0-9\\.]*'" | cut -d" " -f2 | sed "s/'//g") # Create the build folder ssh -o StrictHostKeyChecking=no -i id_ecdsa $DOWNLOADS_USERNAME@$DOWNLOADS_SERVER_IP mkdir -p "~/uploads/$project/$GITHUB_RUN_NUMBER/" # Copy over artifacts rsync -P -e "ssh -o StrictHostKeyChecking=no -i id_ecdsa" build/libs/GeyserConnect.jar $DOWNLOADS_USERNAME@$DOWNLOADS_SERVER_IP:~/uploads/$project/$GITHUB_RUN_NUMBER/ # Run the build script # Push the metadata echo "{\"project\": \"$project\", \"version\": \"$version\", \"id\": $GITHUB_RUN_NUMBER, \"commit\": \"$GITHUB_SHA\"}" > metadata.json rsync -P -e "ssh -o StrictHostKeyChecking=no -i id_ecdsa" metadata.json $DOWNLOADS_USERNAME@$DOWNLOADS_SERVER_IP:~/uploads/$project/$GITHUB_RUN_NUMBER/