diff --git a/.github/workflows/build-prs.yml b/.github/workflows/build-prs.yml index f59e4f6be3..a43d5697ed 100644 --- a/.github/workflows/build-prs.yml +++ b/.github/workflows/build-prs.yml @@ -7,6 +7,10 @@ on: - opened - ready_for_review - reopened + push: + branches: + - 'feature/**' + workflow_dispatch: jobs: build: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..5f879c00b6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,29 @@ +name: Release + +on: + push: + branches: + - '1.*' + +permissions: + contents: read + statuses: write + +jobs: + release: + uses: neoforged/actions/.github/workflows/gradle-publish.yml@main + with: + java: 17 + pre_gradle_tasks: setup + gradle_tasks: publish + version_labels: -beta, -stable + + # We only publish the main repository. This way we avoid publishing Kits + if: ${{ github.repository == 'neoforged/NeoForge' }} + secrets: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + MAVEN_USER: ${{ secrets.MAVEN_USER }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + GPG_SUBKEY: ${{ secrets.GPG_SUBKEY }} + GPG_SUBKEY_ID: ${{ secrets.GPG_SUBKEY_ID }} + GPG_SUBKEY_PASSWORD: ${{ secrets.GPG_SUBKEY_PASSWORD }} diff --git a/.github/workflows/test-prs.yml b/.github/workflows/test-prs.yml index a3ea6f047a..06f6bb8d17 100644 --- a/.github/workflows/test-prs.yml +++ b/.github/workflows/test-prs.yml @@ -7,6 +7,10 @@ on: - opened - ready_for_review - reopened + push: + branches: + - 'feature/**' + workflow_dispatch: jobs: build: diff --git a/.teamcity/patches/buildTypes/MinecraftForge_MinecraftForge__BuildSecondaryBranches.kts b/.teamcity/patches/buildTypes/MinecraftForge_MinecraftForge__BuildSecondaryBranches.kts deleted file mode 100644 index 01a16b8ded..0000000000 --- a/.teamcity/patches/buildTypes/MinecraftForge_MinecraftForge__BuildSecondaryBranches.kts +++ /dev/null @@ -1,29 +0,0 @@ -package patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.v2019_2.* -import jetbrains.buildServer.configs.kotlin.v2019_2.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, change the buildType with id = 'MinecraftForge_MinecraftForge__BuildSecondaryBranches' -accordingly, and delete the patch script. -*/ -changeBuildType(RelativeId("MinecraftForge_MinecraftForge__BuildSecondaryBranches")) { - vcs { - - check(branchFilter == "+:*") { - "Unexpected option value: branchFilter = $branchFilter" - } - branchFilter = """ - -:master - -:main - -: - -:%git_main_branch% - -:main* - -:master* - -:default - -:1.* - +:* - """.trimIndent() - } -} diff --git a/.teamcity/pom.xml b/.teamcity/pom.xml deleted file mode 100644 index a8a6f382b4..0000000000 --- a/.teamcity/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - MinecraftForge_Forge Config DSL Script - MinecraftForge_Forge - MinecraftForge_Forge_dsl - 1.0-SNAPSHOT - - - org.jetbrains.teamcity - configs-dsl-kotlin-parent - 1.0-SNAPSHOT - - - - - jetbrains-all - https://download.jetbrains.com/teamcity-repository - - true - - - - teamcity-server - https://teamcity.minecraftforge.net/app/dsl-plugins-repository - - true - - - - - - - JetBrains - https://download.jetbrains.com/teamcity-repository - - - - - ${basedir} - - - kotlin-maven-plugin - org.jetbrains.kotlin - ${kotlin.version} - - - - - compile - process-sources - - compile - - - - test-compile - process-test-sources - - test-compile - - - - - - org.jetbrains.teamcity - teamcity-configs-maven-plugin - ${teamcity.dsl.version} - - kotlin - target/generated-configs - - - - - - - - org.jetbrains.teamcity - configs-dsl-kotlin - ${teamcity.dsl.version} - compile - - - org.jetbrains.teamcity - configs-dsl-kotlin-plugins - 1.0-SNAPSHOT - pom - compile - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - ${kotlin.version} - compile - - - org.jetbrains.kotlin - kotlin-script-runtime - ${kotlin.version} - compile - - - \ No newline at end of file diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts deleted file mode 100644 index 1b1057bef2..0000000000 --- a/.teamcity/settings.kts +++ /dev/null @@ -1,106 +0,0 @@ -import jetbrains.buildServer.configs.kotlin.v2019_2.* -import jetbrains.buildServer.configs.kotlin.v2019_2.projectFeatures.githubIssues -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle - -/* -The settings script is an entry point for defining a TeamCity -project hierarchy. The script should contain a single call to the -project() function with a Project instance or an init function as -an argument. - -VcsRoots, BuildTypes, Templates, and subprojects can be -registered inside the project using the vcsRoot(), buildType(), -template(), and subProject() methods respectively. - -To debug settings scripts in command-line, run the - - mvnDebug org.jetbrains.teamcity:teamcity-configs-maven-plugin:generate - -command and attach your debugger to the port 8000. - -To debug in IntelliJ Idea, open the 'Maven Projects' tool window (View --> Tool Windows -> Maven Projects), find the generate task node -(Plugins -> teamcity-configs -> teamcity-configs:generate), the -'Debug' option is available in the context menu for the task. -*/ - -version = "2021.2" - -project { - - buildType(Build) - buildType(BuildSecondaryBranches) - - params { - text("docker_jdk_version", "17", label = "Gradle version", description = "The version of the JDK to use during execution of tasks in a JDK.", display = ParameterDisplay.HIDDEN, allowEmpty = false) - text("docker_gradle_version", "7.5.1", label = "Gradle version", description = "The version of Gradle to use during execution of Gradle tasks.", display = ParameterDisplay.HIDDEN, allowEmpty = false) - text("git_main_branch", "1.20.x", label = "Git Main Branch", description = "The git main or default branch to use in VCS operations.", display = ParameterDisplay.HIDDEN, allowEmpty = false) - text("git_branch_spec", """ - +:refs/heads/(main*) - +:refs/heads/(master*) - +:refs/heads/(develop|release|staging|main|master) - +:refs/heads/(1.*) - """.trimIndent(), label = "The branch specification of the repository", description = "By default all main branches are build by the configuration. Modify this value to adapt the branches build.", display = ParameterDisplay.HIDDEN, allowEmpty = true) - text("github_repository_name", "NeoForge", label = "The github repository name. Used to connect to it in VCS Roots.", description = "This is the repository slug on github. So for example `MinecraftForge` or `MinecraftForge`. It is interpolated into the global VCS Roots.", display = ParameterDisplay.HIDDEN, allowEmpty = false) - text("env.PUBLISHED_JAVA_ARTIFACT_ID", "forge", label = "Published artifact id", description = "The maven coordinate artifact id that has been published by this build. Can not be empty.", allowEmpty = false) - text("env.PUBLISHED_JAVA_FML_ARTIFACT_ID", "fmlonly", label = "Published fmlonly artifact id", description = "The maven coordinate artifact id for fml only that has been published by this build. Can not be empty.", allowEmpty = false) - text("env.PUBLISHED_JAVA_FML_ARTIFACT_VERSION", "0.0.0-SNAPSHOT", label = "Published fmlonly artifact version", description = "The version for fml only that has been published by this build. Can not be empty.", allowEmpty = false) - text("env.PUBLISHED_JAVA_GROUP", "net.neoforged", label = "Published group", description = "The maven coordinate group that has been published by this build. Can not be empty.", allowEmpty = false) - //These are references and not actually keys - password("env.CROWDIN_KEY", "credentialsJSON:a3102dbe-805d-4177-9f54-3d2c2eb08fd5", display = ParameterDisplay.HIDDEN) - password("env.KEYSTORE_URL", "credentialsJSON:a7ae1c82-8058-4061-8d12-7f6bc2618d2e", display = ParameterDisplay.HIDDEN) - password("env.KEYSTORE_PASSWORD", "credentialsJSON:d7b964e3-a1fd-47a8-b892-6f601fe47479", display = ParameterDisplay.HIDDEN) - text("additional_publishing_gradle_parameters", "-PcrowdinKey=%env.CROWDIN_KEY% -PkeystoreKeyPass=%env.KEYSTORE_PASSWORD% -PkeystoreStorePass=%env.KEYSTORE_PASSWORD% -Pkeystore=%env.KEYSTORE_URL%", label = "Additional gradle parameters for publish", description = "Contains the additional gradle parameters used during publishing.", display = ParameterDisplay.HIDDEN, allowEmpty = true) - - checkbox("should_execute_build", "false", label = "Should build", description = "Indicates if the build task should be executed.", display = ParameterDisplay.HIDDEN, - checked = "true", unchecked = "false") - checkbox("should_execute_test", "false", label = "Should build", description = "Indicates if the build task should be executed.", display = ParameterDisplay.HIDDEN, - checked = "true", unchecked = "false") - } - - features { - githubIssues { - id = "MinecraftForge_MinecraftForge__IssueTracker" - displayName = "neoforged/NeoForge" - repositoryURL = "https://github.com/neoforged/NeoForge" - } - } -} - -object Build : BuildType({ - templates(AbsoluteId("MinecraftForge_SetupGradleUtilsCiEnvironmen"), AbsoluteId("MinecraftForge_BuildWithDiscordNotifications"), AbsoluteId("MinecraftForge_BuildMainBranches"), AbsoluteId("MinecraftForge_SetupProjectUsingGradle"), AbsoluteId("MinecraftForge_BuildUsingGradle"), AbsoluteId("MinecraftForge_PublishProjectUsingGradle"), AbsoluteId("MinecraftForge_TriggersStaticFilesWebpageGenerator")) - id("MinecraftForge_MinecraftForge__Build") - name = "Build" - description = "Builds and Publishes the main branches of the project." - - features { - feature { - id = "trigger_fml_only_files_generator" - type = "triggerBuildFeature" - param("triggers", "MinecraftForge_FilesGenerator_GeneratePages") - param("parameters", """ - env.PUBLISHED_JAVA_FML_ARTIFACT_ID~env.PUBLISHED_JAVA_ARTIFACT_ID - env.PUBLISHED_JAVA_FML_ARTIFACT_VERSION~env.PUBLISHED_JAVA_ARTIFACT_VERSION - env.PUBLISHED_JAVA_GROUP - """.trimIndent()) - } - } -}) - -object BuildSecondaryBranches : BuildType({ - templates(AbsoluteId("MinecraftForge_ExcludesBuildingDefaultBranch"), AbsoluteId("MinecraftForge_SetupGradleUtilsCiEnvironmen"), AbsoluteId("MinecraftForge_BuildWithDiscordNotifications"), AbsoluteId("MinecraftForge_BuildMainBranches"), AbsoluteId("MinecraftForge_SetupProjectUsingGradle"), AbsoluteId("MinecraftForge_BuildUsingGradle")) - id("MinecraftForge_MinecraftForge__BuildSecondaryBranches") - name = "Build - Secondary Branches" - description = "Builds and Publishes the secondary branches of the project." - params { - text("git_branch_spec", """ - -:refs/heads/(main*) - -:refs/heads/(master*) - -:refs/heads/(develop|release|staging|main|master) - -:refs/heads/(1.*) - +:refs/heads/(*) - -:refs/heads/noci* - """.trimIndent(), label = "The branch specification of the repository", description = "By default all main branches are build by the configuration. Modify this value to adapt the branches build.", display = ParameterDisplay.HIDDEN, allowEmpty = true) - } -}) diff --git a/build.gradle b/build.gradle index cdd6372b99..ec7517b1c0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'net.neoforged.gradleutils' version '3.0.0-alpha.1' apply false + id 'net.neoforged.gradleutils' version '3.0.0-alpha.8' apply false id 'com.diffplug.spotless' version '6.22.0' apply false id 'net.neoforged.licenser' version '0.7.2' apply false } diff --git a/projects/neoforge/build.gradle b/projects/neoforge/build.gradle index 8ffb6f06d8..571740a115 100644 --- a/projects/neoforge/build.gradle +++ b/projects/neoforge/build.gradle @@ -3,6 +3,8 @@ plugins { id 'maven-publish' } +rootProject.gradleutils.setupSigning(project: project, signAllPublications: true) + dynamicProject { runtime("${project.minecraft_version}-${project.neoform_version}", rootProject.layout.projectDirectory.dir('patches'),