Skip to content

Commit

Permalink
Refactor GHA workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander01998 committed Jan 12, 2025
1 parent 4929f25 commit 260bba2
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 126 deletions.
11 changes: 5 additions & 6 deletions .github/workflows/auto_snapshot_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/dependency_graph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 "<details open>" >> $GITHUB_STEP_SUMMARY
echo "<summary>🛡️ VirusTotal Scans</summary>" >> $GITHUB_STEP_SUMMARY
Expand Down Expand Up @@ -127,21 +126,17 @@ jobs:
echo "<details open>" >> $GITHUB_STEP_SUMMARY
echo "<summary>📸 Test Screenshots</summary>" >> $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')
Expand Down
174 changes: 87 additions & 87 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 "[email protected]"
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 "[email protected]"
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
54 changes: 27 additions & 27 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 260bba2

Please sign in to comment.