jamesfredley opened a new pull request, #16236:
URL: https://github.com/apache/grails-core/pull/16236

   ## Description
   
   Add AWS Elastic Beanstalk deployment for the five Grails Forge API slots, 
and backport the unused Forge GitHub create / OAuth removal from #15812.
   
   This targets `7.0.x` first. Merge-up to `7.1.x`, `7.2.x`, `8.0.x`, `8.1.x`, 
and `9.0.x` will follow. `7.0.x` is normally a patch line; this PR is 
operational leftover plus infrastructure, not a new Forge product feature.
   
   ## Summary
   
   - One GitHub Actions workflow, `.github/workflows/forge-deploy-aws.yml`, 
with a `slot` dropdown: `latest`, `snapshot`, `next`, `prev`, `prev-snapshot`. 
Not five GCP-style workflow files.
   - CloudFormation under `grails-forge/infrastructure`: deploy `shared.yaml`, 
then one `environment.yaml` stack per slot.
   - Package Forge as a normal JVM ZIP on Corretto 25 Java SE (Amazon Linux 
2023, arm64 `t4g.small`). Not Tomcat.
   - OIDC deploy role defaults to `GitHubBranch=7.0.x`. Repository variable 
`AWS_FORGE_DEPLOY_ROLE_ARN` is already set.
   - Keep `GITHUB_REDIRECT_URL` for browser redirects to the Forge UI.
   - Do not deploy analytics. Do not change `start.grails.org` DNS.
   
   ## Forge cleanup
   
   - Backport unused GitHub create / OAuth removal from #15812 (already on 
8.0.x). The start.grails.org UI dropped Push to GitHub years ago.
   - No GitHub OAuth app or Secrets Manager secret is required for AWS.
   
   ## Local verification
   
   Built `grails-forge-web-netty:awsElasticBeanstalk` and deployed the ZIP to 
all five Elastic Beanstalk environments. Each hostname returns HTTP 200 on 
`/versions` through the shared ALB (SNI / host-header). That proof build is 
`7.0.17-SNAPSHOT` from this branch, not the production version map.
   
   Production versions after merge-up:
   
   - `latest` = 7.2.3
   - `snapshot` = 8.0.0-SNAPSHOT
   - `next` = 8.0.0-M5
   - `prev` = 7.1.6
   - `prev-snapshot` = 7.0.16
   
   ## Contributor Checklist
   
   ### Issue and Scope
   
   - [ ] This PR is linked to an existing issue that has been **acknowledged or 
approved** by the project team. If no approved issue exists, please give 
background on why this change is necessary. Tickets are preferred for release 
change log history.
   - [x] This PR addresses the **complete scope** of the linked issue. Partial 
implementations or unfinished work should not be submitted for review.
   - [x] This PR contains a **single, focused change**. Unrelated changes 
should be submitted as separate pull requests.
   - [x] This PR targets the **correct branch** for the type of change:
       - **Patch release branches** (e.g., `7.0.x`): Bug fixes only. No new 
features or API changes.
       - **Minor release branches** (e.g., `7.1.x`): New features are welcome, 
but breaking existing APIs must be avoided.
       - **Major release branches** (e.g., `8.0.x`): Reserved for major 
changes. Breaking API changes are permitted.
   
   Note: `7.0.x` is a patch line. This lands AWS ops plus #15812 leftover 
removal here first so merge-up can carry the same workflow to later lines.
   
   ### Code Quality
   
   - [x] I have **added or updated tests** that cover the changes introduced in 
this PR. All code contributions are expected to include appropriate test 
coverage.
   - [ ] I have verified that all existing tests pass by running `./gradlew 
build --rerun-tasks`.
   - [ ] My code follows the project's **code style** guidelines. I have run 
`./gradlew codeStyle` and resolved any violations. See [Code 
Style](../CONTRIBUTING.md#code-style) for details.
   - [x] This PR does **not** include mass reformatting, style-only changes, or 
large-scale refactoring unless it was **explicitly approved** in the linked 
issue. Unsolicited reformatting will not be accepted.
   - [x] If generative AI tooling was used in preparing this contribution, a 
quality model was used to ensure contributions are **consistent with the 
project's quality standards**.
   
   Targeted Forge tests, `cfn-lint`, packaging, and live Elastic Beanstalk 
`/versions` checks were run. A full `./gradlew build --rerun-tasks` was not.
   
   ### Licensing and Attribution
   
   - [x] All contributed code is provided under the [Apache License 
2.0](https://www.apache.org/licenses/LICENSE-2.0), and new source files include 
the appropriate **Apache license header**.
   - [x] I have the necessary rights to submit this contribution and confirm it 
is my own original work (see [Legal 
Notice](../CONTRIBUTING.md#i-want-to-contribute)).
   - [x] If generative AI tooling was used in preparing this contribution, I 
have followed the [Apache Software Foundation's policy on generative 
tooling](https://www.apache.org/legal/generative-tooling.html) and have 
properly attributed its use.
   
   Assisted-by: OpenCode / Grok 4.6 with GPT-5.6 review.
   
   ### Documentation
   
   - [x] If this PR introduces user-facing changes, I have included or updated 
the relevant documentation.
   - [ ] If this PR adds a new feature, I have updated the **What's New** 
section of the Grails Guide.
   - [ ] If this PR introduces breaking changes or changes that require user 
action during an upgrade, I have updated the **Upgrade Notes** for the 
corresponding version in the Grails Guide.
   - [x] The PR description clearly explains **what** was changed and **why**.
   
   Operator runbook: `grails-forge/docs/aws-elastic-beanstalk.md`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to