name: Leaves CI on: push: branches: [ master ] workflow_dispatch: jobs: build: runs-on: ubuntu-latest if: github.repository == 'LeavesMC/Leaves' steps: - name: Get repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get JDK 21 uses: actions/setup-java@v4 with: java-version: "21" distribution: "zulu" - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: add-job-summary: never cache-read-only: false - name: Setup Git Config run: | git config --global user.email "ci@leavesmc.org" git config --global user.name "LeavesMC CI" - name: Get Build Number run: bash scripts/GetBuildNumber.sh - name: Apply Patches run: ./gradlew applyAllPatches - name: Create Leavesclip Jar run: ./gradlew createMojmapLeavesclipJar env: BUILD_NUMBER: ${{ env.BUILD_NUMBER }} - name: Publish to Maven repo run: | ./gradlew :leaves-api:publish ./gradlew :leaves-server:publishDevBundlePublicationToLeavesRepository -PpublishDevBundle=true env: LEAVES_USERNAME: ${{ secrets.NEW_REPO_USERNAME }} LEAVES_PASSWORD: ${{ secrets.NEW_REPO_PASSWORD }} - name: Create Configuration continue-on-error: true run: ./gradlew createLeavesConfig - name: Push Configuration continue-on-error: true run: | mkdir --parents "$HOME/.ssh" ssh-keyscan -H "github.com" > "$HOME/.ssh/known_hosts" echo "${{ secrets.CONFIG_DEPLOY_KEY }}" > "$HOME/.ssh/deploy.key" chmod 400 "$HOME/.ssh/deploy.key" export GIT_SSH_COMMAND="ssh -i $HOME/.ssh/deploy.key" git clone git@github.com:LeavesMC/Configuration.git configuration -b Leaves cp run/leaves.yml configuration/leaves.yml -f cd configuration git add leaves.yml git commit leaves.yml -m "$(date -u +"%Y-%m-%dT%H:%M:%SZ") https://github.com/LeavesMC/Leaves/commit/$(cd .. && git rev-parse HEAD)" git push origin HEAD:Leaves - name: Get Release Info run: bash scripts/GetReleaseInfo.sh env: BUILD_NUMBER: ${{ env.BUILD_NUMBER }} - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: ${{ env.jar }} path: ${{ env.jar }} - name: Create Release if: "!contains(github.event.commits[0].message, '[release-skip]')" continue-on-error: true uses: ncipollo/release-action@v1 with: artifacts: ${{ env.jar }} bodyFile: ${{ env.info }} tag: ${{ env.tag }} name: ${{ env.name }} prerelease: ${{ env.pre }} token: ${{ secrets.GITHUB_TOKEN }} makeLatest: ${{ env.make_latest }} - name: Github Releases To Discord if: "!contains(github.event.commits[0].message, '[release-skip]')" continue-on-error: true uses: tsickert/discord-webhook@v6.0.0 with: webhook-url: ${{ secrets.DISCORD_WEBHOOK }} raw-data: ${{ env.discordmes }} - name: Push to API if: "!contains(github.event.commits[0].message, '[release-skip]')" continue-on-error: true env: secret: ${{ secrets.API_PUSH_TOKEN }} secret_v2: ${{ secrets.API_V2_PUSH_TOKEN }} tag: ${{ env.tag }} run: sh scripts/PushToAPI.sh