decentraland / decentraland/platform-actions
comms-gatekeeper has a second manual deploy workflow that bypasses image validation
- Dominant language
- Shell
- Stars
- 0
- Forks
- 1
- Avg merge
- 14h 27m
- Merged PRs (30d)
- 1
Description
## Problem
`comms-gatekeeper` has **two** manual deployment workflows. Only one goes through `platform-actions`:
| Workflow | Path | Validated by #62? |
|---|---|---|
| `manual-release.yml` | calls `apps-docker-manual-deployment.yml@main` | ✅ yes |
| `manual-deployment.yml` | calls `dcl-deploy-action@main` **directly** | ❌ no |
The second one builds `quay.io/decentraland/comms-gatekeeper:${{ inputs.tag }}` with no validation at all, **defaults to `prd`**, and covers two services. The doubled-image-reference failure that #62 fixed is still fully reachable through it.
## Proposed fix
Delete `manual-deployment.yml` and fold its one extra capability (the second service) into `manual-release.yml`. Both services run the *same* image — only the ECS service name differs, so it is a pure pass-through:
```yaml
on:
workflow_dispatch:
inputs:
service-name:
required: true
type: choice
options: [comms-gatekeeper, comms-gatekeeper-local-multiplayer]
deployment-environment:
required: true
type: choice
options: [dev, stg, prd]
default: dev
docker-image:
required: true
type: string
description: 'Tag only - latest, next, or . Not a full URL.'
jobs:
deploy:
uses: decentraland/platform-actions/.github/workflows/apps-docker-manual-deployment.yml@main
with:
service-name: ${{ inputs.service-name }}
deployment-environment: ${{ inputs.deployment-environment }}
quay-registry-path: quay.io/decentraland/comms-gatekeeper:${{ inputs.docker-image }}
secrets: inherit
```
## Two related input bugs (same change)
1. **`type: string` with `options:`** — `options` is only honoured for `type: choice`, so `deployment-environment` currently renders as a **free-text box** in both `comms-gatekeeper` and `realm-provider`. This matters because `dcl-deploy-action` does `envs.split(/\s+/g)` and loops over the result: a typed `dev prd` deploys to **both**. Fix in both repos.
2. Both callers have a stray `secrets:` block nested under `workflow_dispatch:`, which is not a valid key there. GitHub ignores it; remove it.
## Scope
- `decentraland/comms-gatekeeper` — delete `manual-deployment.yml`, update `manual-release.yml`
- `decentraland/realm-provider` — `type: choice` fix only
No change to `platform-actions` itself.
Follow-up from #62.
Contributor guide
Research direction
Start with comms-gatekeeper's manual-deployment.yml and manual-release.yml, then inspect realm-provider's deployment workflow and the reusable apps-docker-manual-deployment.yml@main call. Done means the bypass workflow is removed, both services use the validated image path, environment inputs are constrained choices, and the invalid nested secrets blocks are absent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd, devops, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100