Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build task should actually build the application, not publish #13

Merged
merged 18 commits into from
Aug 23, 2024
Merged
67 changes: 15 additions & 52 deletions .github/workflows/gradle.build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,31 @@ on:
workflow_call:
inputs:
java:
description: "The version of Java to use to run Gradle" # Note: Gradle's Java toolchains feature is used for compiling, which is separate from this
description: "The version of Java to use to run Gradle"
required: false
type: string
default: "21"
gradle_tasks:
description: "The Gradle task(s) to run at publication"
description: "The Gradle task(s) to run for building"
required: false
type: string
default: "publish"
default: "build"
secrets:
CROWDIN_API_KEY:
required: true

GRADLE_ENCRYPTION_KEY:
required: true
description: The AES key to enable Gradle cache encryption
required: false
Thodor12 marked this conversation as resolved.
Show resolved Hide resolved

permissions:
contents: read
statuses: write
packages: write

jobs:
compute-version:
name: Compute version
compute-suffix:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
version_tag: ${{ steps.version.outputs.version_tag }}
minecraft_version: ${{ steps.minecraftVersion.outputs.minecraft_version }}
branch_suffix: ${{ steps.computeBranchSuffix.outputs.branch_suffix }}
steps:
- id: checkout
name: "📦 Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- id: minecraftVersion
name: "📦 Extract Minecraft version"
run: |
cat gradle.properties | grep exactMinecraftVersion | cut -d "=" -f 2 > minecraft_version.txt
echo "Minecraft version: $(cat minecraft_version.txt)"
echo "minecraft_version=$(cat minecraft_version.txt)" >> "$GITHUB_OUTPUT"

- id: computeBranchSuffix
name: "🔢 Compute branch suffix"
if: github.event_name == 'push'
run: |
gitRef="${{ github.ref }}"
branchName=$(echo "${gitRef/refs\/heads\//}")
Expand All @@ -62,31 +40,22 @@ jobs:

echo "branch_suffix=$cleanedBranchName" >> "$GITHUB_OUTPUT"

- id: version
name: "🔢 Compute version"
uses: PaulHatch/[email protected]
with:
tag_prefix: "v"
search_commit_body: true
debug: true
bump_each_commit: true
version_format: "${major}.${minor}.${patch}-${{ steps.minecraftVersion.outputs.minecraft_version }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || format('branch-{0}', steps.computeBranchSuffix.outputs.branch_suffix) }}"
compute-version:
needs: [ "compute-suffix" ]
uses: ./.github/workflows/gradle.version.yaml
with:
suffix: ${{ format('branch-{0}', needs.compute-suffix.outputs.branch_suffix) }}

gradle:
needs: ["compute-version"] # Make sure we now the version before starting to build
build:
needs: [ "compute-version" ]
runs-on: ubuntu-latest
steps:
- id: checkout
name: "📦 Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 1000
fetch-tags: true

- id: setupJava
name: "🔧 Setup Java"
# https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md#java
# language=bash
run: |
echo "JAVA_HOME=$(echo $JAVA_HOME_${{ inputs.java }}_X64)" >> "$GITHUB_ENV"

Expand All @@ -101,10 +70,4 @@ jobs:
name: "🏗️ Build"
run: ./gradlew --build-cache ${{ inputs.gradle_tasks }}
env:
crowdinKey: ${{ secrets.CROWDIN_API_KEY }}
Version: "${{ needs.compute-version.outputs.version }}"
GITHUB_TOKEN: ${{ github.token }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_USERNAME: ${{ github.actor }}


Version: "${{ needs.compute-version.outputs.version }}"
66 changes: 66 additions & 0 deletions .github/workflows/gradle.prerelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Based off https://github.com/MinecraftForge/SharedActions/blob/main/.github/workflows/gradle.yml
name: Gradle Pre-release CI

on:
workflow_call:
inputs:
java:
description: "The version of Java to use to run Gradle"
required: false
type: string
default: "21"
gradle_tasks:
description: "The Gradle task(s) to run for building"
required: false
type: string
default: "publish"
secrets:
GRADLE_ENCRYPTION_KEY:
description: The AES key to enable Gradle cache encryption
required: true
CROWDIN_API_KEY:
required: true

permissions:
contents: read
statuses: write
packages: write

jobs:
compute-version:
uses: ./.github/workflows/gradle.version.yaml
with:
suffix: pre-release

gradle:
needs: [ "compute-version" ]
runs-on: ubuntu-latest
steps:
- id: checkout
name: "📦 Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 1000
fetch-tags: true

- id: setupJava
name: "🔧 Setup Java"
run: |
echo "JAVA_HOME=$(echo $JAVA_HOME_${{ inputs.java }}_X64)" >> "$GITHUB_ENV"

- id: setupGradle
name: "🔧 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: wrapper
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}

- id: build
name: "🏗️ Build"
run: ./gradlew --build-cache ${{ inputs.gradle_tasks }}
env:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_USERNAME: ${{ github.actor }}
crowdinKey: ${{ secrets.CROWDIN_API_KEY }}
Version: "${{ needs.compute-version.outputs.version }}"
47 changes: 7 additions & 40 deletions .github/workflows/gradle.publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_call:
inputs:
java:
description: "The version of Java to use to run Gradle" # Note: Gradle's Java toolchains feature is used for compiling, which is separate from this
description: "The version of Java to use to run Gradle"
required: false
type: string
default: "21"
Expand All @@ -24,23 +24,19 @@ on:
required: false
type: number
default: 100

secrets:
DISCORD_WEBHOOK:
required: true

MAVEN_USER:
required: true
MAVEN_PASSWORD:
required: true

CURSE_API_KEY:
required: true

CROWDIN_API_KEY:
required: true

GRADLE_ENCRYPTION_KEY:
description: The AES key to enable Gradle cache encryption
required: true

permissions:
Expand All @@ -49,39 +45,12 @@ permissions:

jobs:
compute-version:
name: Compute version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
version_tag: ${{ steps.version.outputs.version_tag }}
minecraft_version: ${{ steps.minecraftVersion.outputs.minecraft_version }}
steps:
- id: checkout
name: "📦 Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- id: minecraftVersion
name: "📦 Extract Minecraft version"
run: |
cat gradle.properties | grep exactMinecraftVersion | cut -d "=" -f 2 > minecraft_version.txt
echo "Minecraft version: $(cat minecraft_version.txt)"
echo "minecraft_version=$(cat minecraft_version.txt)" >> "$GITHUB_OUTPUT"

- id: version
name: "🔢 Compute version"
uses: PaulHatch/[email protected]
with:
tag_prefix: "v"
search_commit_body: true
debug: true
bump_each_commit: true
version_format: "${major}.${minor}.${patch}-${{ steps.minecraftVersion.outputs.minecraft_version }}-${{ inputs.curse_release_type }}"
uses: ./.github/workflows/gradle.version.yaml
with:
suffix: ${{ inputs.curse_release_type }}

notify-build-start:
needs: ["compute-version"]
needs: [ "compute-version" ]
name: "🔴 Build notifications (start)"
runs-on: ubuntu-latest
steps:
Expand All @@ -104,7 +73,7 @@ jobs:
target_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

gradle:
needs: ["compute-version"] # Make sure we now the version before starting to build
needs: [ "compute-version" ]
runs-on: ubuntu-latest
steps:
- id: checkout
Expand All @@ -116,8 +85,6 @@ jobs:

- id: setupJava
name: "🔧 Setup Java"
# https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md#java
# language=bash
run: |
echo "JAVA_HOME=$(echo $JAVA_HOME_${{ inputs.java }}_X64)" >> "$GITHUB_ENV"

Expand Down
47 changes: 47 additions & 0 deletions .github/workflows/gradle.version.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Common Version Determination CI

on:
workflow_call:
inputs:
suffix:
description: "The suffix to finish the version string with"
required: false
type: string
default: ""
outputs:
version:
description: "The computed version"
value: ${{ jobs.compute-version.outputs.version }}

permissions:
contents: read

jobs:
compute-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- id: checkout
name: "📦 Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- id: minecraftVersion
name: "📦 Extract Minecraft version"
run: |
cat gradle.properties | grep exactMinecraftVersion | cut -d "=" -f 2 > minecraft_version.txt
echo "Minecraft version: $(cat minecraft_version.txt)"
echo "minecraft_version=$(cat minecraft_version.txt)" >> "$GITHUB_OUTPUT"

- id: version
name: "🔢 Compute version"
uses: PaulHatch/[email protected]
with:
tag_prefix: "v"
search_commit_body: true
debug: true
bump_each_commit: true
version_format: "${{ steps.minecraftVersion.outputs.minecraft_version }}-${major}.${minor}.${patch}-${{ inputs.suffix }}"