Skip to content

Commit 24d4f7f

Browse files
committed
Document DevSH Rocket fork workflow
1 parent 890227d commit 24d4f7f

3 files changed

Lines changed: 62 additions & 0 deletions

File tree

.github/workflows/devsh-foss-image.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@ jobs:
5050
echo "IMAGE_TAG=${image_tag}" >> "${GITHUB_ENV}"
5151
echo "Publishing ${IMAGE}:${image_tag}"
5252
53+
- name: Validate image tag
54+
run: |
55+
set -euo pipefail
56+
case "${IMAGE_TAG}" in
57+
devsh-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-*) ;;
58+
8.*-devsh.*) ;;
59+
*) echo "Invalid image tag for DevSH rollout: ${IMAGE_TAG}" >&2; exit 1 ;;
60+
esac
61+
5362
- name: Resolve source cache key
5463
id: source
5564
run: |

DEVSH.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# DevSH Rocket.Chat Fork
2+
3+
This fork carries the DevSH operational branch for the self-hosted Rocket.Chat deployment.
4+
5+
## Branch Model
6+
7+
- `devsh` is the production build branch used by DevSH infrastructure.
8+
- `devsh` starts from an upstream Rocket.Chat release tag.
9+
- Upstream updates should be pulled into `devsh` intentionally, then validated through the image workflow before TerraInfra rolls forward.
10+
- Runtime production changes belong in TerraInfra. This fork should stay close to upstream Rocket.Chat source.
11+
12+
## FOSS Image Build
13+
14+
The `DevSH FOSS image` workflow builds a fully self-hosted FOSS Rocket.Chat image:
15+
16+
1. Check out the `devsh` branch.
17+
2. Install Node, Yarn, Deno, and Meteor.
18+
3. Build shared packages.
19+
4. Run `yarn fossify`, which removes Enterprise and commercial source directories.
20+
5. Build the Meteor production bundle.
21+
6. Build and verify the Docker image.
22+
7. Publish immutable tags to `ghcr.io/devsh-graphics-programming/rocketchat-foss`.
23+
24+
The workflow verifies that the runtime bundle does not contain `AirGappedRestriction`, which is the Enterprise air-gapped restriction path that can make isolated official images read-only.
25+
26+
## Image Tags
27+
28+
Pushes to `devsh` publish:
29+
30+
- `devsh-YYYYMMDDHHMMSS-<sha>` as the immutable rollout tag.
31+
- `devsh` as a moving convenience tag.
32+
33+
Terraform/Flux uses only immutable `devsh-YYYYMMDDHHMMSS-<sha>` tags for production rollouts.
34+
35+
## TerraInfra Integration
36+
37+
TerraInfra watches the GHCR package with Flux image automation:
38+
39+
- `ImageRepository`: `ghcr.io/devsh-graphics-programming/rocketchat-foss`
40+
- `ImagePolicy`: newest immutable `devsh-YYYYMMDDHHMMSS-<sha>` tag
41+
- `ImageUpdateAutomation`: commits the selected tag to `env/prod`
42+
43+
After Flux commits the tag update, the Rocket.Chat HelmRelease rolls the deployment on `prod-rocket-01`.
44+
45+
## Operational Rule
46+
47+
Do not use Rocket.Chat official Enterprise-flavored container images for the isolated DevSH deployment. The DevSH production service uses this FOSS image route so the workspace stays self-hosted without a cloud/license dependency for basic chat functionality.
48+

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
> [!IMPORTANT]
2+
> This is the DevSH operational fork of Rocket.Chat. The `devsh` branch is used to build a FOSS-only image for the isolated DevSH production workspace. The image workflow runs `yarn fossify`, publishes immutable `devsh-YYYYMMDDHHMMSS-<sha>` tags to `ghcr.io/devsh-graphics-programming/rocketchat-foss`, and TerraInfra/Flux consumes those tags for production rollout on `prod-rocket-01`.
3+
>
4+
> Keep runtime infrastructure changes in TerraInfra. Keep this fork close to upstream Rocket.Chat and use `DEVSH.md` for the DevSH branch/build model.
5+
16
<p align="center">
27
<img src="https://github.com/RocketChat/Rocket.Chat.Artwork/raw/master/Logos/2020/png/logo-horizontal-red.png" data-canonical-src="https://github.com/RocketChat/Rocket.Chat.Artwork/raw/master/Logos/2020/png/logo-horizontal-red.png" width="400" />
38
</p>

0 commit comments

Comments
 (0)