decentraland / decentraland/platform-actions

comms-gatekeeper has a second manual deploy workflow that bypasses image validation

Open
#63 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.