Skip to content

Merge 7.1.x Forge AWS into 7.2.x - #16239

Merged
jamesfredley merged 10 commits into
7.2.xfrom
merge/7.1.x-into-7.2.x
Aug 28, 2026
Merged

Merge 7.1.x Forge AWS into 7.2.x#16239
jamesfredley merged 10 commits into
7.2.xfrom
merge/7.1.x-into-7.2.x

Conversation

@jamesfredley

Copy link
Copy Markdown
Contributor

Description

Merge 7.1.x Forge AWS Elastic Beanstalk work into 7.2.x.

Keeps 7.2.4-SNAPSHOT. No per-line AWS workflow edits: source_ref plus javaVersion from gradle.properties, OIDC *.x / v*.

jdaugherty and others added 10 commits August 23, 2026 13:03
chore: merge 7.0.16->7.0.x; bump to 7.0.17-SNAPSHOT
chore: merge 7.1.6->7.1.x; bump to 7.1.7-SNAPSHOT
* Honor configured Forge redirect URL

Handle absent redirect values without throwing and cover configured and null binding behavior.

Assisted-by: opencode:gpt-5.6-sol

* Package Forge for Elastic Beanstalk

Build a reproducible Java SE source bundle with normalized nested and outer archives.

Assisted-by: opencode:gpt-5.6-sol

* Add Forge Elastic Beanstalk infrastructure

Define shared ALB, IAM, secrets, artifact lifecycle, five parameterized environments, and optional Route 53 resources.

Assisted-by: opencode:gpt-5.6-sol cfn-lint

* Add Forge AWS deployment workflow

Deploy one Forge slot through OIDC with immutable versions, bounded health polling, ALB-pinned smoke checks, and rollback.

Assisted-by: opencode:gpt-5.6-sol

* Document Forge AWS migration checkpoint

Replace obsolete GCP setup guidance with the AWS runbook and preserve the intentionally local restart handoff.

Assisted-by: opencode:gpt-5.6-sol

* Remove unused Forge GitHub create and OAuth integration

The start.grails.org UI removed Push to GitHub (grails-forge-ui#61).
Delete the unused server-side create/OAuth/push stack, related config,
JGit dependency, native-image metadata, and deployment secrets so the
API no longer accepts GitHub OAuth create flows.

Keep generated-app GitHub Actions workflow features and the browser
redirect URL used by the Forge UI.

Also fix setRedirectUrl so GITHUB_REDIRECT_URL actually overrides the
default, and purge retired OAuth env vars from Cloud Run on deploy.

Assisted-by: Sisyphus:xai/grok-4.5

* Align Forge AWS stacks with OAuth removal and Corretto 25

Drop the retired GitHub OAuth CloudFormation parameters, Secrets Manager
IAM, and Elastic Beanstalk environment properties. Keep GITHUB_REDIRECT_URL
as the browser redirect to the Forge UI. Target Corretto 25 for Grails 7
and Grails 8.

* Drop Forge AWS WIP handoff and grant instance S3 reads

Remove the branch-local handoff document before the 7.0.x pull request.
Allow Elastic Beanstalk instances to GetObject from the custom artifact
bucket so source-bundle downloads are not limited to elasticbeanstalk-*
paths.

* Add ASF license headers and Forge AWS lifecycle IAM

Give nginx proxy.conf and the infrastructure README recognized Apache
headers. Exclude the Elastic Beanstalk Procfile from RAT because it
cannot contain comments. Allow the service role to delete expired
application versions.

* Use HTTPS in the Forge nginx proxy license header

checkstyleNohttp failed on grails-forge-web-netty because the Apache
license URL in proxy.conf used http. Match start.sh and use https.
Copilot AI lite review requested due to automatic review settings August 28, 2026 15:09
@jamesfredley
jamesfredley merged commit c29a028 into 7.2.x Aug 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Merges the 7.1.x AWS Elastic Beanstalk deployment work into the 7.2.x line by adding CloudFormation templates + an AWS deployment workflow, while removing the legacy “Push to GitHub” OAuth/JGit integration and aligning configs/docs accordingly.

Changes:

  • Add CloudFormation templates (shared + per-slot environment + optional DNS) and accompanying deployment/runbook docs for Elastic Beanstalk.
  • Add Gradle packaging for an Elastic Beanstalk source bundle (ZIP with app.jar, Procfile, start.sh, .platform).
  • Remove GitHub OAuth / API v3 client + JGit-based push functionality and update configs/workflows/tests to match.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
grails-forge/infrastructure/shared.yaml Adds shared AWS resources: ALB, EB app, roles, artifact bucket, exports.
grails-forge/infrastructure/environment.yaml Adds per-slot EB environment behind shared ALB with required option settings.
grails-forge/infrastructure/dns.yaml Adds optional Route 53 alias records (future use).
grails-forge/infrastructure/README.md Documents manual CloudFormation deployment steps and current DNS approach.
grails-forge/grails-forge-web-netty/src/main/resources/application.yml Removes GitHub OAuth/http service config; keeps only redirect URL.
grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/.../resource-config.json Removes JGit bundle entries from native-image resources config.
grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/.../reflect-config.json Deletes JGit-related native-image reflection config.
grails-forge/grails-forge-web-netty/build.gradle Adds reproducible shadowJar settings and an EB ZIP packaging task.
grails-forge/grails-forge-web-netty/aws/start.sh Adds EB start script running the jar on port 5000 with aws env.
grails-forge/grails-forge-web-netty/aws/Procfile Adds EB Procfile to launch start.sh.
grails-forge/grails-forge-web-netty/aws/.platform/nginx/conf.d/proxy.conf Adds nginx proxy tuning for EB.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/util/GitHubUtil.java Removes JGit-based push utility.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRuns.java Removes GitHub API v3 DTO.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRun.java Removes GitHub API v3 DTO.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubUser.java Removes GitHub API v3 DTO.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecretsPublicKey.java Replaces file contents (currently malformed; see review comments).
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecret.java Removes GitHub API v3 DTO.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubRepository.java Removes GitHub API v3 DTO.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiOperations.java Removes GitHub API v3 operations interface.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiClient.java Removes GitHub API v3 Micronaut client.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthOperations.java Removes GitHub OAuth operations interface.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthClient.java Removes GitHub OAuth Micronaut client.
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/AccessToken.java Removes GitHub OAuth DTO.
grails-forge/grails-forge-core/build.gradle Removes JGit dependency.
grails-forge/grails-forge-api/src/test/resources/logback.xml Drops GitHub create logger entry.
grails-forge/grails-forge-api/src/test/groovy/.../GitHubOauthMockedController.groovy Removes GitHub OAuth mocked controller test.
grails-forge/grails-forge-api/src/test/groovy/.../GitHubCreateControllerSpec.groovy Removes GitHub create controller spec.
grails-forge/grails-forge-api/src/test/groovy/.../GitHubApiMockedController.groovy Removes GitHub API mocked controller test.
grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/ApplicationControllerSpec.groovy Adds redirect URL configuration assertions.
grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/.../native-image.properties Removes JGit native-image args.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubRedirectService.java Removes GitHub redirect service.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateService.java Removes GitHub create service.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateOperation.java Removes GitHub create API interface.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateDTO.java Removes GitHub create DTO.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateController.java Removes GitHub create controller.
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/GrailsForgeConfiguration.java Fixes redirect URI handling and null/ignore behavior; removes nested GitHub config.
grails-forge/gradle.properties Removes jgitVersion.
grails-forge/docs/aws-elastic-beanstalk.md Adds a detailed AWS EB deployment runbook.
grails-forge/README.md Replaces Cloud Run deployment docs with AWS EB migration summary + runbook link.
gradle/rat-root-config.gradle Excludes EB Procfile from RAT due to comment constraints.
.github/workflows/forge-deploy-snapshot.yml Removes GitHub OAuth env vars from Cloud Run deployment step.
.github/workflows/forge-deploy-release.yml Removes GitHub OAuth env vars from Cloud Run deployment steps.
.github/workflows/forge-deploy-prev.yml Removes GitHub OAuth env vars from Cloud Run deployment step.
.github/workflows/forge-deploy-prev-snapshot.yml Removes GitHub OAuth env vars from Cloud Run deployment step.
.github/workflows/forge-deploy-next.yml Removes GitHub OAuth env vars from Cloud Run deployment step.
.github/workflows/forge-deploy-aws.yml Adds workflow_dispatch-driven AWS EB deploy via OIDC, packaging, update, smoke test, rollback.
Suppressed comments (1)

grails-forge/grails-forge-web-netty/build.gradle:1

  • In a Gradle Groovy script, import statements must appear before other top-level statements. Placing import ...ShadowJar after the plugins {} block can cause the build script to fail to compile. Move the import to the very top of the file (above plugins {}), or remove the import and reference the type via its fully-qualified name when calling tasks.named.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +37 to +40
source_ref:
description: 'Git branch or tag to build. Leave empty to build the workflow ref.'
required: false
type: string
RELEASE: ${{ inputs.release }}
SHARED_STACK: ${{ inputs.shared_stack }}
SLOT: ${{ inputs.slot }}
SOURCE_REF: ${{ inputs.source_ref || github.ref_name }}
Comment on lines +83 to +90
if [[ "${SOURCE_REF}" =~ ^[0-9]+\.[0-9]+\.x$ ]]; then
exit 0
fi
if [[ "${SOURCE_REF}" =~ ^v[0-9][A-Za-z0-9._-]*$ ]]; then
exit 0
fi
echo "source_ref must be a maintenance branch such as 7.1.x or a tag such as v7.1.6." >&2
exit 1
@jamesfredley
jamesfredley deleted the merge/7.1.x-into-7.2.x branch August 28, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants