Skip to content

Release: develop -> main#178

Open
github-actions[bot] wants to merge 2 commits intomainfrom
develop
Open

Release: develop -> main#178
github-actions[bot] wants to merge 2 commits intomainfrom
develop

Conversation

@github-actions
Copy link
Copy Markdown

@github-actions github-actions Bot commented May 7, 2026

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

…m (ARM64) (#177)

* ci: add lds-api docker pipeline + switch lnbitsapi to lightningdotspacecom (ARM64)

Adds:
- Dockerfile + .dockerignore at repo root for the lds-api NestJS service
- lds-api-{dev,prd}.yaml workflows that build linux/arm64 and push
  lightningdotspacecom/lds-api:{beta,latest} on push to {develop,main}

Updates:
- lnbitsapi-{dev,prd}.yaml: image renamed from dfxswiss/lnbitsapi:{latest,main}
  to lightningdotspacecom/lnbitsapi:{beta,latest}; build pinned to linux/arm64
  via QEMU + buildx; Node bumped from 16.x (EOL) to 18.x to match Dockerfile

The pre-existing api-{dev,prd}.yaml Azure App Service workflows are kept
intact for the migration window — they will be removed once the dfxprd LDS
stack is live.

Docker Hub credentials secret (DOCKER_USERNAME / DOCKER_PASSWORD) must be
set to a token with write access to the lightningdotspacecom org before
the first build runs.

* ci(lds): align workflows with DFX convention (ARM-native, deploy step)

Aligns the lds-api and lnbitsapi build pipelines with the DFX house
style (cf. juicedollarcom/api, deurocom/api):

- runs-on: ubuntu-24.04-arm (native ARM, no QEMU)
- platforms: linux/arm64 (single arch, matches DFX servers)
- Deploy step after build: install cloudflared, SSH via Cloudflare Tunnel
  to dfxdev/dfxprd, invoke deploy.sh with the canonical service name
  (lds-api / lds-lnbitsapi). Matches the case-block added in
  DFXServer/server commit ba6fdf6.

PR test workflows (api-pr.yaml, lnbitsapi-pr.yaml) bumped from Node 16.x
(EOL) to Node 18.x to match the production Dockerfile.

Required secrets per repo (set on top of DOCKER_USERNAME/PASSWORD):
- DEPLOY_DEV_SSH_KEY, DEPLOY_DEV_SSH_KNOWN_HOSTS, DEPLOY_DEV_HOST, DEPLOY_DEV_USER
- DEPLOY_PRD_SSH_KEY, DEPLOY_PRD_SSH_KNOWN_HOSTS, DEPLOY_PRD_HOST, DEPLOY_PRD_USER

The DEV deploy will only succeed once dfxdev:~/lds/docker-compose.yaml is
in place (skeleton currently committed without compose). Until then the
build step pushes to Docker Hub and the deploy step fails — fine, image
is published either way.
* fix(docker): install python3 + build toolchain for node-gyp

The CI build of lds-api fails on 'npm ci' with:
  npm ERR! gyp ERR! stack Error: Could not find any Python installation to use

Several deps (solana, eth-signing-related crates) have native modules
that node-gyp builds at install time. node:18-alpine ships without
Python or a C/C++ toolchain, so install python3 + make + g++ before
the npm step.

* fix(docker,lnbitsapi): same python3 + toolchain fix as lds-api

The lnbitsapi image uses the same node:18-alpine base as the new lds-api
image, and depends on sqlite3 which has a native binding compiled by
node-gyp. Add the same python3 + make + g++ install step proactively so
the next push under infrastructure/lnbitsapi/** doesn't hit the same
build failure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant