diff --git a/.github/workflows/auto_snapshot_update.yml b/.github/workflows/auto_snapshot_update.yml index 4b9a63c677..73de851398 100644 --- a/.github/workflows/auto_snapshot_update.yml +++ b/.github/workflows/auto_snapshot_update.yml @@ -97,23 +97,23 @@ jobs: git checkout -b $BRANCH_NAME echo "Created and checked out new branch: $BRANCH_NAME" fi - shell: bash - name: Run migrateMappings task run: | ./gradlew migrateMappings --mappings ${{ github.event.inputs.yarn_mappings }} - shell: bash - name: Replace src/main/java with remapped files run: | rm -rf ./src/main/java mv ./remappedSrc ./src/main/java - shell: bash - name: Update version constants run: | - python scripts/update_version_constants.py "${{ github.event.inputs.mc_version }}" "${{ github.event.inputs.yarn_mappings }}" "${{ github.event.inputs.fabric_loader }}" "${{ github.event.inputs.fapi_version }}" - shell: bash + python scripts/update_version_constants.py \ + "${{ github.event.inputs.mc_version }}" \ + "${{ github.event.inputs.yarn_mappings }}" \ + "${{ github.event.inputs.fabric_loader }}" \ + "${{ github.event.inputs.fapi_version }}" # To fix any style issues that the migration scripts might cause - name: Run spotlessApply task @@ -126,7 +126,6 @@ jobs: git add . git commit -m "[Wurst-Bot] Update to ${{ github.event.inputs.mc_version }}" git push --set-upstream origin ${{ github.event.inputs.mc_version }} - shell: bash - name: Trigger CI on the new branch id: ci_dispatch diff --git a/.github/workflows/dependency_graph.yml b/.github/workflows/dependency_graph.yml index 4d2765bf0d..74a85a2b02 100644 --- a/.github/workflows/dependency_graph.yml +++ b/.github/workflows/dependency_graph.yml @@ -13,10 +13,11 @@ on: workflow_dispatch: permissions: + # Needed by the dependency-submission action. contents: write jobs: - dependency-submission: + dependency_graph: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 05764cb394..a3b7b8519b 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -90,7 +90,6 @@ jobs: - name: Add VirusTotal links to build summary if: ${{ env.VIRUSTOTAL_API_KEY && steps.virustotal.outputs.analysis }} - shell: bash run: | echo "
" >> $GITHUB_STEP_SUMMARY echo "🛡️ VirusTotal Scans" >> $GITHUB_STEP_SUMMARY @@ -127,21 +126,17 @@ jobs: echo "
" >> $GITHUB_STEP_SUMMARY echo "📸 Test Screenshots" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - for img in run/screenshots/*.png; do if [ -f "$img" ]; then filename=$(basename "$img") name_without_ext="${filename%.*}" - # Upload to Imgur response=$(curl -s -X POST \ -H "Authorization: Client-ID $IMGUR_CLIENT_ID" \ -F "image=@$img" \ https://api.imgur.com/3/image) - # Extract the URL from the response url=$(echo $response | grep -o '"link":"[^"]*"' | cut -d'"' -f4) - if [ ! -z "$url" ]; then # Convert underscores to spaces and capitalize first letter of each word title=$(echo "$name_without_ext" | tr '_' ' ' | awk '{for(i=1;i<=NF;i++)sub(/./,toupper(substr($i,1,1)),$i)}1') diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 26e6a31797..1da8c65019 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -47,90 +47,90 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - name: Echo distinct ID ${{ github.event.inputs.distinct_id }} - run: echo ${{ github.event.inputs.distinct_id }} - - - name: Checkout repository - uses: actions/checkout@v4 - with: - # Include all tags in case the new tag already exists. - fetch-tags: true - - - name: Set up Java 21 - uses: actions/setup-java@v4 - with: - java-version: "21" - distribution: "microsoft" - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - name: Build - run: ./gradlew build --stacktrace --warning-mode=fail - - - name: Create and push tag - run: | - MOD_VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') - git config --global user.name "Wurst-Bot" - git config --global user.email "contact.wurstimperium@gmail.com" - git tag "$MOD_VERSION" - git push origin "$MOD_VERSION" - - - name: Close milestone - if: ${{ inputs.close_milestone }} - run: ./gradlew closeMilestone --stacktrace - - - name: Upload backups - if: ${{ inputs.upload_backups }} - run: ./gradlew uploadBackups --stacktrace - - - name: Publish to GitHub - if: ${{ inputs.publish_github }} - env: - GITHUB_TOKEN: ${{ secrets.OLD_MCX_PUBLISH_TOKEN }} - run: ./gradlew github --stacktrace - - - name: Build website update inputs - id: website_inputs - if: ${{ inputs.update_website }} - run: | - MOD_VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') - WURST_VERSION=$(echo "$MOD_VERSION" | sed 's/^v//' | sed 's/-MC.*$//') - MC_VERSION=$(grep "^minecraft_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') - FAPI_VERSION=$(grep "^fabric_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') - JSON_STRING=$(cat << EOF - { - "wurst_version": "$WURST_VERSION", - "mc_version": "$MC_VERSION", - "fapi_version": "$FAPI_VERSION", - "announce": "${{ inputs.announce_backport }}" - } - EOF - ) - # Convert to single line and escape quotes - echo "json=${JSON_STRING//$'\n'/}" >> "$GITHUB_OUTPUT" - - - name: Trigger website update - id: website_dispatch - if: ${{ inputs.update_website }} - uses: codex-/return-dispatch@v2 - with: - token: ${{ secrets.WURSTCLIENT_NET_PUBLISH_TOKEN }} - owner: Wurst-Imperium - repo: WurstClient.net - ref: gh-pages - workflow: add_wurst_port.yml - workflow_inputs: ${{ steps.website_inputs.outputs.json }} - - - name: Wait for website update to finish (run ${{ steps.website_dispatch.outputs.run_id }}) - if: ${{ inputs.update_website }} - uses: codex-/await-remote-run@v1 - with: - token: ${{ secrets.WURSTCLIENT_NET_PUBLISH_TOKEN }} - owner: Wurst-Imperium - repo: WurstClient.net - run_id: ${{ steps.website_dispatch.outputs.run_id }} - run_timeout_seconds: 600 # 10 minutes + - name: Echo distinct ID ${{ github.event.inputs.distinct_id }} + run: echo ${{ github.event.inputs.distinct_id }} + + - name: Checkout repository + uses: actions/checkout@v4 + with: + # Include all tags in case the new tag already exists. + fetch-tags: true + + - name: Set up Java 21 + uses: actions/setup-java@v4 + with: + java-version: "21" + distribution: "microsoft" + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Build + run: ./gradlew build --stacktrace --warning-mode=fail + + - name: Create and push tag + run: | + MOD_VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') + git config --global user.name "Wurst-Bot" + git config --global user.email "contact.wurstimperium@gmail.com" + git tag "$MOD_VERSION" + git push origin "$MOD_VERSION" + + - name: Close milestone + if: ${{ inputs.close_milestone }} + run: ./gradlew closeMilestone --stacktrace + + - name: Upload backups + if: ${{ inputs.upload_backups }} + run: ./gradlew uploadBackups --stacktrace + + - name: Publish to GitHub + if: ${{ inputs.publish_github }} + env: + GITHUB_TOKEN: ${{ secrets.OLD_MCX_PUBLISH_TOKEN }} + run: ./gradlew github --stacktrace + + - name: Build website update inputs + id: website_inputs + if: ${{ inputs.update_website }} + run: | + MOD_VERSION=$(grep "^mod_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') + WURST_VERSION=$(echo "$MOD_VERSION" | sed 's/^v//' | sed 's/-MC.*$//') + MC_VERSION=$(grep "^minecraft_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') + FAPI_VERSION=$(grep "^fabric_version=" gradle.properties | cut -d'=' -f2 | tr -d ' \r') + JSON_STRING=$(cat << EOF + { + "wurst_version": "$WURST_VERSION", + "mc_version": "$MC_VERSION", + "fapi_version": "$FAPI_VERSION", + "announce": "${{ inputs.announce_backport }}" + } + EOF + ) + # Convert to single line and escape quotes + echo "json=${JSON_STRING//$'\n'/}" >> "$GITHUB_OUTPUT" + + - name: Trigger website update + id: website_dispatch + if: ${{ inputs.update_website }} + uses: codex-/return-dispatch@v2 + with: + token: ${{ secrets.WURSTCLIENT_NET_PUBLISH_TOKEN }} + owner: Wurst-Imperium + repo: WurstClient.net + ref: gh-pages + workflow: add_wurst_port.yml + workflow_inputs: ${{ steps.website_inputs.outputs.json }} + + - name: Wait for website update to finish (run ${{ steps.website_dispatch.outputs.run_id }}) + if: ${{ inputs.update_website }} + uses: codex-/await-remote-run@v1 + with: + token: ${{ secrets.WURSTCLIENT_NET_PUBLISH_TOKEN }} + owner: Wurst-Imperium + repo: WurstClient.net + run_id: ${{ steps.website_dispatch.outputs.run_id }} + run_timeout_seconds: 600 # 10 minutes diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c074fe4b58..fa5a56cb94 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,30 +13,30 @@ jobs: runs-on: ubuntu-latest steps: - - name: Run stale bot - uses: actions/stale@v9 - with: - stale-issue-message: | - This issue has been open for a while with no recent activity. If this issue is still important to you, please add a comment within the next 7 days to keep it open. Otherwise, the issue will be automatically closed to free up time for other tasks. - - Issues should be closed if: - - They are duplicates of other issues - - There is not enough demand - - They are no longer relevant - - There are not enough details - stale-pr-message: | - This pull request has been open for a while with no recent activity. If you're still working on this or waiting for a review, please add a comment or commit within the next 7 days to keep it open. Otherwise, the pull request will be automatically closed to free up time for other tasks. - - Pull requests should be closed if: - - They have been superseded by another pull request - - They are out of scope or don't align with the project - - They have become obsolete due to other changes - - They have bugs or conflicts that won't be resolved - days-before-stale: 60 - days-before-close: 7 - exempt-issue-labels: "status:never-stale" - exempt-pr-labels: "status:never-stale" - stale-issue-label: "status:stale" - stale-pr-label: "status:stale" - operations-per-run: 200 - enable-statistics: true + - name: Run stale bot + uses: actions/stale@v9 + with: + stale-issue-message: | + This issue has been open for a while with no recent activity. If this issue is still important to you, please add a comment within the next 7 days to keep it open. Otherwise, the issue will be automatically closed to free up time for other tasks. + + Issues should be closed if: + - They are duplicates of other issues + - There is not enough demand + - They are no longer relevant + - There are not enough details + stale-pr-message: | + This pull request has been open for a while with no recent activity. If you're still working on this or waiting for a review, please add a comment or commit within the next 7 days to keep it open. Otherwise, the pull request will be automatically closed to free up time for other tasks. + + Pull requests should be closed if: + - They have been superseded by another pull request + - They are out of scope or don't align with the project + - They have become obsolete due to other changes + - They have bugs or conflicts that won't be resolved + days-before-stale: 60 + days-before-close: 7 + exempt-issue-labels: "status:never-stale" + exempt-pr-labels: "status:never-stale" + stale-issue-label: "status:stale" + stale-pr-label: "status:stale" + operations-per-run: 200 + enable-statistics: true