Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
48fe9c4
fix(settings): validate info.relay_url is a usable absolute URL (#825)
chappie-daemon Oct 15, 2026
9bf130b
chore: release nostream@3.4.1 (#826)
cameri Oct 15, 2026
82287d4
feat(website): add Astro marketing site with landing film, docs, chan…
Ferryx349 Oct 15, 2026
7409006
feat(nip77): add NEG-OPEN/NEG-MSG/NEG-CLOSE wire protocol (#818)
Priyanshubhartistm Oct 15, 2026
bb28deb
ci(website): version the site through changesets, deploy to Cloudflar…
chappie-daemon Oct 15, 2026
13584bf
ci: skip unit and integration suites on changeset release PRs (#831)
chappie-daemon Oct 15, 2026
f0bcdcc
feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in th…
Priyanshubhartistm Oct 15, 2026
b2a997d
fix(website): bind ema.tnsor.network as the worker's custom domain in…
chappie-daemon Oct 15, 2026
ed74856
chore: release nostream@3.5.0, nostream-website@1.1.0 (#827)
cameri Oct 15, 2026
4642dfd
fix(website): warn instead of failing while the hero film is stale (#…
chappie-daemon Oct 16, 2026
d4e894d
chore: release nostream-website@1.1.1 (#836)
cameri Oct 16, 2026
91a5a7e
feat(website): serve the hero film in two qualities (#839)
chappie-daemon Oct 16, 2026
3877140
chore: release nostream-website@1.2.0 (#840)
cameri Oct 16, 2026
50ffe33
fix(deps): resolve open dependabot security alerts (#838)
chappie-daemon Oct 16, 2026
4f6579d
chore: release nostream@3.5.1 (#841)
cameri Oct 16, 2026
72fca58
feat(website): user-benefit copy with (i) detail tooltips (#842)
chappie-daemon Oct 16, 2026
d31f4f8
chore: release nostream-website@1.2.1 (#843)
cameri Oct 16, 2026
c352d72
fix(website): skip the dependents probe when deleting previews (#844)
chappie-daemon Oct 16, 2026
1b1ef4f
feat(website): add Abhay maintainer bio and profile photo on communit…
Ferryx349 Oct 16, 2026
d3651dc
chore: release nostream-website@1.2.2 (#846)
cameri Oct 16, 2026
2234a25
fix(website): tooltip viewport clamp, preview asset serving, and site…
chappie-daemon Oct 16, 2026
4d7d0d0
chore: release nostream-website@1.2.3 (#850)
cameri Oct 16, 2026
ee7e06b
fix(website): deploy main, not the tag ref (#837)
chappie-daemon Oct 16, 2026
041fe34
docs: link the project website from the README intro (#855)
chappie-daemon Oct 16, 2026
811fbb5
chore: release nostream-website@1.2.4 (#854)
cameri Oct 17, 2026
526054b
docs: add NIP parity audit for the rewrite (#872)
chappie-daemon Oct 17, 2026
d11faf4
feat(admin): add bounded NIP-66 probe history and timeline (#814)
Ferryx349 Oct 17, 2026
355ac37
chore: release nostream@3.6.0 (#873)
cameri Oct 17, 2026
59c5ebf
feat(admin): align console with nostream.dev theme (#875)
Ferryx349 Oct 17, 2026
e47132f
chore: release nostream@3.6.1 (#877)
cameri Oct 17, 2026
a0915b8
feat(brand): recolor the icon from purple to the site's pink (#858)
chappie-daemon Oct 17, 2026
9a54c3e
chore: release nostream-website@1.2.5 (#880)
cameri Oct 18, 2026
c6c346e
Create CODE_OF_CONDUCT.md
cameri Oct 18, 2026
e654852
feat(website): add a social preview card and the full preview meta se…
chappie-daemon Oct 18, 2026
07dc215
fix(website): deploy previews before commenting, and purge the CDN ca…
chappie-daemon Oct 18, 2026
9146fd3
feat(website): show operator console film on marketing site (#882)
Ferryx349 Oct 18, 2026
eb68475
feat(website): serve the site at nostream.dev and redirect every othe…
chappie-daemon Oct 18, 2026
ff53a73
fix(admin): stop notification target select chevron from tiling (#892)
Ferryx349 Oct 18, 2026
f88a563
feat(website): add Priyanshu bio and profile photo on community page …
Priyanshubhartistm Oct 18, 2026
c5f9d74
chore: release nostream-website@1.3.0, nostream@3.6.2 (#887)
cameri Oct 18, 2026
bb69376
feat(website): add Telegram channel and dev chat to community page (#…
Priyanshubhartistm Oct 18, 2026
3ed70e4
fix(website): stop hero headline overlapping the film frame (#899)
Ferryx349 Oct 18, 2026
b2b45c2
chore: release nostream-website@1.3.1 (#898)
cameri Oct 18, 2026
7e504e1
feat(payments): add the subscription data model and plan settings (#849)
Priyanshubhartistm Oct 18, 2026
3425b84
docs: support nostream 3.5+ only and name a private reporting route (…
Priyanshubhartistm Oct 18, 2026
02b70cf
feat(website): refresh admin film with updated notifications screensh…
Ferryx349 Oct 19, 2026
a52cbfd
feat(admin): add operations console for mirrors, workers, and NIP-05 …
Ferryx349 Oct 20, 2026
e41853e
test(payments): add unit tests for the zebedee, opennode, nodeless an…
Priyanshubhartistm Oct 20, 2026
e361ae7
test(payments): use literal zebedee statuses in the status tests
Priyanshubhartistm Oct 20, 2026
7b4f627
feat(payments): add subscription lifecycle, renewal invoices and plan…
Priyanshubhartistm Oct 21, 2026
921ff8d
Merge branch 'main' into test/payment-processors
Priyanshubhartistm Oct 21, 2026
fcb33de
feat(payments): add per-plan event rate limits and retention
Priyanshubhartistm Oct 21, 2026
a279295
fix(payments): read the subscription once per message and cache no pl…
Priyanshubhartistm Oct 21, 2026
abd4a1b
feat(admin): trust and automation for operator console (#920)
Ferryx349 Oct 21, 2026
e417437
chore: sunset the StaticMirroringWorker (#924)
Priyanshubhartistm Oct 22, 2026
17157d5
fix(payments): parse ISO 8601 time/expiry returned by LNbits >= 1.0 (…
chappie-daemon Oct 23, 2026
c40e570
feat(website): add Abhay Nostr link on community page (#916)
Ferryx349 Oct 23, 2026
82124b0
ci(release): stop publishing on main and make the deploy path follow …
chappie-daemon Oct 24, 2026
689e6fa
chore: release nostream-website@1.3.2, nostream@3.7.0 (#901)
cameri Oct 24, 2026
ee65257
ci(release): publish legal image tags and keep latest off prereleases…
chappie-daemon Oct 24, 2026
98bd234
chore(deps): build and test on Node 24.22.1 for the Brotli decoder fi…
chappie-daemon Oct 24, 2026
9c736c8
ci(release): dispatch the image build for a tag that already has a re…
chappie-daemon Oct 24, 2026
42ed39e
feat(admin): moderation tools for limits and activity stats (#941)
Ferryx349 Oct 24, 2026
062ee00
fix(rate-limiter): namespace EWMA keys away from sliding-window keys …
chappie-daemon Oct 24, 2026
694bba7
test(repositories): add unit tests for the notification outbox, deliv…
Priyanshubhartistm Oct 24, 2026
b39efbe
Merge branch 'main' into test/payment-processors
cameri Oct 24, 2026
8ea15fc
feat(website): relay peering launch film and home section (#969)
Ferryx349 Oct 24, 2026
75ccb0e
chore: release nostream@3.8.0, nostream-website@1.3.3 (#966)
cameri Oct 24, 2026
a46ae06
fix(compose): confine dynamic addresses to 10.10.10.128/26 (#972)
chappie-daemon Oct 24, 2026
3b35377
chore(factory): name rewrite/main as the integration base (#977)
chappie-daemon Oct 25, 2026
bc73fa7
fix(admin): address Greptile moderation follow-ups from #941
Ferryx349 Oct 25, 2026
3696f3e
chore(changeset): admin moderation Greptile follow-ups (#941)
Ferryx349 Oct 25, 2026
527b1af
fix(admin): address Greptile review on moderation follow-ups
Ferryx349 Oct 25, 2026
b0f5ce0
Merge branch 'main' into test/payment-processors
Priyanshubhartistm Oct 28, 2026
13ad9b7
Merge branch 'main' into feat/subscription-tier-limits
Priyanshubhartistm Oct 28, 2026
2819e30
feat(payments): let clients see their subscription tier (#926)
Priyanshubhartistm Oct 28, 2026
dff00ba
docs: add first-party production setup guide and update README (#897)
avantikonde Oct 22, 2026
06f08ad
docs(setup): fix six defects found in review
chappie-daemon Oct 29, 2026
9668ac1
docs(setup): make proxy trust mandatory and fix backup advice
chappie-daemon Oct 29, 2026
9d594b4
docs(setup): fix proxy-trust placement and backup commands
chappie-daemon Oct 29, 2026
3095759
docs(setup): handle quoted .env values and the silent settings reset
chappie-daemon Oct 29, 2026
1b0b0b4
docs(setup): stop the proxy example from dropping default entries
chappie-daemon Oct 29, 2026
f71f20a
docs(setup): stop the metadata step from duplicating a YAML key, cove…
chappie-daemon Oct 29, 2026
6c5cf97
docs(setup): correct which compose file defines the 10.10.10 network
chappie-daemon Oct 29, 2026
2ae1d39
docs(setup): the client-address log line needs debug level
chappie-daemon Oct 29, 2026
469f1b1
feat(peering): advertise terms and scopes in NIP-11 (#999)
Ferryx349 Oct 29, 2026
7585174
test(repositories): make the user-subscription spec independent of th…
Priyanshubhartistm Oct 29, 2026
caccf00
Merge branch 'main' into test/payment-processors
cameri Oct 29, 2026
efcd320
Merge remote-tracking branch 'origin/main' into docs/897-setup-guide
chappie-daemon Oct 31, 2026
e2833b3
docs(setup): make the proxy trust instructions match what Docker forw…
chappie-daemon Oct 31, 2026
cdc70e9
docs(setup): refresh release files on update and never leave a partia…
chappie-daemon Oct 31, 2026
f023328
docs(setup): point the TLS recipes at the proxy-trust step
chappie-daemon Oct 31, 2026
9311b9e
test(redis): a client keeps publishing after the cache loses its scripts
chappie-daemon Oct 31, 2026
80b0a9e
chore(changeset): record the script-cache recovery coverage
chappie-daemon Oct 31, 2026
4086a82
fix(test): restore settings after the script-cache scenario
chappie-daemon Oct 31, 2026
27d4ba1
docs(setup): size the database for the host and restart it on config …
chappie-daemon Oct 31, 2026
f9a981a
docs(setup): wait for PostgreSQL before reading its settings
chappie-daemon Oct 31, 2026
b185f35
ci(deploy): retry the website deploy step on a transient Cloudflare f…
chappie-daemon Oct 31, 2026
7d5d73c
test(redis): prove the relay keeps publishing after the cache loses i…
cameri Oct 31, 2026
af3a916
Merge branch 'main' into docs/897-setup-guide
cameri Oct 31, 2026
502a355
ci(deploy): degrade without coreutils and prove the argument quoting
chappie-daemon Oct 31, 2026
5f4787a
Merge remote-tracking branch 'origin/main' into feat/970-deploy-retry
chappie-daemon Oct 31, 2026
7ac5f39
docs: add first-party production setup guide (#897) (#1000)
cameri Oct 31, 2026
3bbf8c3
test(deploy): normalise the stub's attempt counter for BSD wc
chappie-daemon Oct 31, 2026
c5b07e4
Merge remote-tracking branch 'origin/main' into feat/970-deploy-retry
chappie-daemon Oct 31, 2026
770b9d8
test(deploy): assert on retry warnings, not on any warning
chappie-daemon Oct 31, 2026
f58ae15
ci(deploy): retry the website deploy step on a transient Cloudflare f…
cameri Oct 31, 2026
ae1f8b8
Merge branch 'main' into feat/subscription-tier-limits
cameri Oct 31, 2026
2176a32
Merge branch 'main' into test/payment-processors
cameri Oct 31, 2026
b1efa6e
test(payments): add unit tests for the zebedee, opennode, nodeless an…
cameri Oct 31, 2026
b25d293
chore: release nostream@3.9.0, nostream-website@1.3.4
github-actions[bot] Oct 31, 2026
54c0187
chore: release new version 🚀 (#973)
chappie-daemon Oct 31, 2026
d29dd62
Merge branch 'main' into feat/subscription-tier-limits
Priyanshubhartistm Oct 31, 2026
b6634b0
feat(payments): add per-plan event rate limits and retention (#922)
cameri Oct 31, 2026
4012fbf
build: pin the node base image in every file that names one
chappie-daemon Oct 31, 2026
ad8c5c4
chore: changeset for the node base image pin
chappie-daemon Oct 31, 2026
f7c57f4
build: pin the node base image in every file that names one (#1009)
cameri Oct 31, 2026
fa54cb0
fix(settings): state that rate-limit periods are milliseconds
chappie-daemon Oct 31, 2026
c913ac2
docs(settings): state the direction of the period mistake plainly
chappie-daemon Oct 31, 2026
2cf1854
docs(settings): a shorter period loosens the limit, not tightens it
chappie-daemon Oct 31, 2026
a3b98d0
fix(settings): state that rate-limit periods are milliseconds and rej…
cameri Oct 31, 2026
13f708a
chore: release nostream@3.10.0
github-actions[bot] Oct 31, 2026
2d62766
chore: release 3.10.0
chappie-daemon Oct 31, 2026
fd7679b
fix(rate-limit): the backoff a strategy means, an outage named as one…
chappie-daemon Oct 31, 2026
e0842c5
test(rate-limiter): seed the typed message bucket the relay now reads
chappie-daemon Oct 31, 2026
15ae7a9
fix(rate-limit): a closed set of message types, the step in the backo…
chappie-daemon Oct 31, 2026
aa7564c
fix(rate-limit): send the backoff the strategy means, name an outage …
cameri Oct 31, 2026
d8095de
fix(startup): print the banner as text, not as one JSON record per line
chappie-daemon Oct 31, 2026
fb861f5
feat(startup): replace the banner with one record when LOG_FORMAT=json
chappie-daemon Oct 31, 2026
c152368
fix(startup): print the banner as text, not as one JSON record per li…
cameri Oct 31, 2026
e2dabc8
chore: release nostream@3.10.1
github-actions[bot] Oct 31, 2026
bc22677
chore: release new version 🚀 (#1013)
chappie-daemon Oct 31, 2026
eb304b8
fix(deps): bump knex to 3.2.9 for the search_path SQL injection
chappie-daemon Nov 1, 2026
a6804dd
Merge branch 'main' into fix/admin-moderation-greptile
Ferryx349 Nov 1, 2026
f1c52bd
fix(admin): harden settings lock and moderation stats
Ferryx349 Nov 1, 2026
38b29cf
fix(admin): address Greptile moderation follow-ups from #941 (#986)
Ferryx349 Nov 1, 2026
815ae1c
chore: release nostream@3.10.2
github-actions[bot] Nov 1, 2026
00bf76a
chore: release new version 🚀 (#1029)
cameri Nov 1, 2026
9b585db
feat(peering): authenticate peer relays with NIP-42 (#933)
Ferryx349 Nov 1, 2026
da69913
fix(peering): harden peer recognition and document AUTH scope
Ferryx349 Nov 1, 2026
18125d4
feat(peering): authenticate peer relays with NIP-42 (#1030)
Ferryx349 Nov 1, 2026
35244d2
fix(deps): bump knex to 3.2.9 for the search_path SQL injection (#1024)
cameri Nov 2, 2026
601c98a
chore: release nostream@3.11.0
github-actions[bot] Nov 2, 2026
f154598
chore: release new version 🚀 (#1031)
cameri Nov 2, 2026
d286d80
chore: merge main into rewrite/main
chappie-daemon Nov 2, 2026
9d96d70
ci: exempt the one legacy commit from the commit-lint range
chappie-daemon Nov 2, 2026
5c795f3
fix(config): keep the defaults to what this branch's schema models
chappie-daemon Nov 2, 2026
e6deb14
fix(config): model main's settings surfaces instead of dropping them
chappie-daemon Nov 2, 2026
64888ac
style: rustfmt the validator edits
chappie-daemon Nov 2, 2026
0675792
fix(config): validate the surfaces the merge modelled
chappie-daemon Nov 2, 2026
8a7065c
style: collapse the nip66 guard clippy refused
chappie-daemon Nov 2, 2026
a5400b6
fix(deps): astro 7.4.4 and sharp 0.35.5 in the website
chappie-daemon Nov 2, 2026
4febc2a
chore: declare the markdown-remark dependency to knip, add the changeset
chappie-daemon Nov 2, 2026
c358a6a
fix(deps): astro 7.4.4 and sharp 0.35.5 in the website (#1038)
cameri Nov 2, 2026
74bd76c
chore: merge main into rewrite/main (astro 7, website dependency bumps)
chappie-daemon Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .changeset/astro-7-website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
---

fix(deps): astro 7.4.4 and sharp 0.35.5 in website/site

No published package changes: `website/site` is a private workspace package and
is not part of the release set, so this changeset is empty on purpose. The bump
closes a critical advisory in astro (< 7.2.8) and three highs in astro and sharp.
3 changes: 3 additions & 0 deletions .factory/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"integrationBase": "rewrite/main"
}
Binary file added .github/assets/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
126 changes: 126 additions & 0 deletions .github/scripts/deploy-with-retry.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#!/usr/bin/env bash
#
# Run a wrangler deploy, retrying only a transient Cloudflare failure.
#
# .github/scripts/deploy-with-retry.sh <wrangler command...>
#
# The command is taken from the caller so each workflow keeps its own
# invocation (`npx wrangler deploy --config wrangler.preview.jsonc` for a
# preview, `pnpm exec wrangler deploy --config wrangler.router.jsonc` with
# `--var` for production).
#
# Only three signals are retried, because retrying anything else triples the
# noise and delays the message that matters:
#
# - `code: 10013`, the Cloudflare API's "unknown error" seen in #970
# - an HTTP 5xx from the Cloudflare API
# - a connection reset
#
# An expired per-attempt timeout is retried too: a hung upload is the case the
# timeout exists for, and failing on the first one would defeat it.
#
# Authentication failures, a missing environment and wrangler validation
# errors fail on the first attempt.
#
# Every attempt after the first is announced with a `::warning::` naming the
# attempt and the reason, so the flake rate stays visible in the Actions UI
# instead of disappearing behind a passing job.
#
# Environment:
# DEPLOY_ATTEMPTS total attempts (default 3)
# DEPLOY_ATTEMPT_TIMEOUT seconds allowed per attempt (default 180)
# DEPLOY_BACKOFFS seconds to wait before each retry (default "10 30")
set -uo pipefail

attempts=${DEPLOY_ATTEMPTS:-3}
attempt_timeout=${DEPLOY_ATTEMPT_TIMEOUT:-180}
read -r -a backoffs <<< "${DEPLOY_BACKOFFS:-10 30}"

if [ "$#" -eq 0 ]; then
echo "usage: $0 <wrangler command...>" >&2
exit 2
fi

if ! [[ "$attempts" =~ ^[1-9][0-9]*$ ]]; then
echo "DEPLOY_ATTEMPTS must be a positive integer, got '$attempts'" >&2
exit 2
fi

# `timeout` is coreutils: every GitHub runner has it, a stock macOS does not.
# Falling back keeps the script usable from a laptop (the unit suite runs it),
# and says so rather than silently dropping the bound. Bash 3.2 ships on macOS,
# so an empty array cannot be expanded with "${timeout_cmd[@]}" under `set -u`.
timeout_cmd=()
if command -v timeout >/dev/null 2>&1; then
timeout_cmd=(timeout --kill-after=10 "$attempt_timeout")
elif command -v gtimeout >/dev/null 2>&1; then
timeout_cmd=(gtimeout --kill-after=10 "$attempt_timeout")
else
echo "::warning::no 'timeout' or 'gtimeout' on PATH — deploy attempts are not bounded (install coreutils to restore the per-attempt limit)"
fi

logs=$(mktemp -d)
trap 'rm -rf "$logs"' EXIT

# Echo the transient reason found in an attempt's output, or return 1 when the
# failure is one we must not retry.
transient_reason() {
local log=$1
local http

if grep -qE 'code: ?10013' "$log"; then
printf 'Cloudflare API error code 10013'
return 0
fi
http=$(grep -oE 'HTTP 5[0-9][0-9]' "$log" | head -1 || true)
if [ -n "$http" ]; then
printf '%s from the Cloudflare API' "$http"
return 0
fi
if grep -qiE 'ECONNRESET|connection reset|socket hang up' "$log"; then
printf 'connection reset'
return 0
fi

return 1
}

for (( attempt = 1; attempt <= attempts; attempt++ )); do
log="$logs/attempt-$attempt.log"
status=0
echo "deploy attempt $attempt/$attempts: $*"
# The whole attempt is bounded: an upload that stops making progress must not
# hold the job until the workflow's own timeout. `--kill-after` covers a
# process that ignores TERM. Without coreutils the bound is dropped and the
# warning above says so, rather than turning every deploy into exit 127.
${timeout_cmd[@]+"${timeout_cmd[@]}"} "$@" >"$log" 2>&1 || status=$?
cat "$log"

if [ "$status" -eq 0 ]; then
echo "deploy succeeded on attempt $attempt/$attempts"
exit 0
fi

reason=$(transient_reason "$log") || reason=
if [ -z "$reason" ]; then
if [ "$status" -eq 124 ] || [ "$status" -eq 137 ]; then
reason="attempt timed out after ${attempt_timeout}s"
else
echo "::error::deploy failed on attempt $attempt/$attempts with a non-transient error (exit $status) — not retrying" >&2
tail -n 30 "$log" >&2
exit "$status"
fi
fi

if [ "$attempt" -ge "$attempts" ]; then
echo "::error::deploy failed after $attempts attempts — last failure: $reason" >&2
tail -n 30 "$log" >&2
exit "$status"
fi

delay=${backoffs[$((attempt - 1))]:-0}
echo "::warning::wrangler deploy attempt $((attempt + 1))/$attempts after attempt $attempt/$attempts failed with: $reason — waiting ${delay}s"
if [ "$delay" -gt 0 ]; then
sleep "$delay"
fi
done
70 changes: 11 additions & 59 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ jobs:
- '.nvmrc'
- 'resources/default-settings.yaml'
- '.github/workflows/checks.yml'
# A unit test reads these workflows, so a change to any of them
# must run the suite that asserts on it. #965 changed release.yml
# and skipped the very tests that change broke.
- '.github/workflows/**'
# test/unit/scripts/deploy-with-retry.spec.ts runs the deploy
# script, so a change to it must run the suite that asserts on it.
- '.github/scripts/**'
rust:
- 'crates/**'
- 'Cargo.toml'
Expand Down Expand Up @@ -123,7 +130,8 @@ jobs:
if: |
needs.changes.outputs.src == 'true' &&
needs.lint.result == 'success' &&
needs.build-check.result == 'success'
needs.build-check.result == 'success' &&
github.head_ref != 'changeset-release/main'
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -166,7 +174,8 @@ jobs:
if: |
needs.changes.outputs.src == 'true' &&
needs.lint.result == 'success' &&
needs.build-check.result == 'success'
needs.build-check.result == 'success' &&
github.head_ref != 'changeset-release/main'
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -293,60 +302,3 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Check for changeset
run: pnpm exec changeset status --since origin/${{ github.base_ref }}

publish-container-image:
name: Build and push container image
runs-on: ubuntu-latest
needs:
- changes
- lint
- build-check
- test-units-and-cover
- test-integrations-and-cover
- post-tests
if: >-
always() && github.event_name == 'push' && github.ref == 'refs/heads/main' &&
needs.changes.result == 'success' &&
(
needs.changes.outputs.src != 'true' ||
(
needs.lint.result == 'success' &&
needs.build-check.result == 'success' &&
needs.test-units-and-cover.result == 'success' &&
needs.test-integrations-and-cover.result == 'success'
)
) &&
needs.post-tests.result == 'success'
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=main
type=sha,prefix=sha-

- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Loading
Loading