Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
node_modules
node_modules
.env*
41 changes: 41 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Fake values for the test stack only. Never put real secrets here.
inxtbridge_storage__mongoUrl=mongodb://admin:password@mongo:27017/bridge-test
inxtbridge_storage__mongoOpts__user=admin
inxtbridge_storage__mongoOpts__pass=password
inxtbridge_storage__mongoOpts__dbName=bridge-test
inxtbridge_server__port=0
inxtbridge_api_keys__segment_test=inxtbridge_api_keys__segment_test
inxtbridge_application__CLUSTER__0=inxtbridge_application__CLUSTER__0
inxtbridge_logger__level=5
inxtbridge_storage__mongoOpts__authSource=admin
inxtbridge_stripe__PK_LIVE=inxtbridge_stripe__PK_LIVE
inxtbridge_api_keys__segment=inxtbridge_api_keys__segment
inxtbridge_stripe__SK_LIVE=inxtbridge_stripe__SK_LIVE
inxtbridge_redis__port=6379
inxtbridge_server__ssl__redirect=443
inxtbridge_redis__password=
inxtbridge_redis__host=redis
inxtbridge_complex__rpcUser=inxtbridge_complex__rpcUser
inxtbridge_stripe__SIG_TEST=inxtbridge_stripe__SIG_TEST
inxtbridge_gateway__username=inxtbridge_gateway__username
inxtbridge_mailer__auth__pass=inxtbridge_mailer__auth__pass
inxtbridge_stripe__PK_TEST=inxtbridge_stripe__PK_TEST
inxtbridge_complex__rpcPassword=inxtbridge_complex__rpcPassword
inxtbridge_mailer__host=inxtbridge_mailer__host
inxtbridge_server__public__host=inxtbridge_server__public__host
inxtbridge_stripe__SK_TEST=inxtbridge_stripe__SK_TEST
inxtbridge_complex__rpcUrl=inxtbridge_complex__rpcUrl
inxtbridge_mailer__auth__user=inxtbridge_mailer__auth__user
inxtbridge_mailer__sendgrid__api_key=inxtbridge_mailer__sendgrid__api_key
inxtbridge_storage__mongoOpts__server__poolSize=100
inxtbridge_stripe__SIG=inxtbridge_stripe__SIG
inxtbridge_drive__api=inxtbridge_drive__api
inxtbridge_server__public__port=443
inxtbridge_mailer__port=465
inxtbridge_gateway__password=inxtbridge_gateway__password
inxtbridge_NEW_QUEUE_HOST=network-queue
inxtbridge_NEW_QUEUE_PORT=6379
inxtbridge_NEW_QUEUE_USERNAME=admin
inxtbridge_NEW_QUEUE_PASSWORD=password
inxtbridge_gateway__SIGN_JWT_SECRET=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT3dJQkFBSkJBTDlDTVRlZGEramdIcGJuTmtlSm51TlpnYzg5TGFvMGNQNkl6dlJrYTJ0MUVKbnh5ZTA1CndSWGZLMXFpbTFOMGU3cGhkd0RkRWYvNGJ1eFc5V2g1UWxzQ0F3RUFBUUpCQUpnRXljLzF2VDdGWFNyK3JpTWcKWFAxQ09LNTdaeCtCUFVyamZQTytHYSszWk1MRHhqaG44dGZmV1E4VUpKemJ5VkQ0Q0JqTmNra2xRN3phQ29BNwo1WWtDSVFEd0h2MXhVRkFVUkI2b3QwL0JMMWNxek5SNU80dFBMT0NjL2gyK0o4Y09WUUloQU12b0FrMm5IQWhSClpRNmhNZGFTdWtPVTE3MTYvRGxnNWNiSXNWYXh0bDN2QWlBTUdTT2YzL0lJODEyd0ZueFlPWEJrNGFrYTZwc2MKUkNDVkNHQ3JRZ25QZVFJZ2NTU2E2cFc0YzFFZTN5Qkl0RVNVZ0YxOTNKRDZsYWdUdDlxeXRHVkZ5UmNDSVFDYgp6dE85ampXcERmYTlnWTV2dVB4MFgyUkcxbjJQb0ZYVjVXT29RanNqbnc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
inxtbridge_gateway__JWT_SECRET=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBTDlDTVRlZGEramdIcGJuTmtlSm51TlpnYzg5TGFvMApjUDZJenZSa2EydDFFSm54eWUwNXdSWGZLMXFpbTFOMGU3cGhkd0RkRWYvNGJ1eFc5V2g1UWxzQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=
77 changes: 2 additions & 75 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
name: ci
on:
push:
branches:
- 'master'
pull_request:
branches:
- 'master'
Expand All @@ -11,78 +8,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
packages: read
strategy:
matrix:
node-version: [16.x]
env:
DATABASE_URI: ${{ secrets.DATABASE_URI }}
inxtbridge_storage__mongoUrl: mongodb://admin:password@127.0.0.1:27017/bridge-test
inxtbridge_storage__mongoOpts__user: admin
inxtbridge_storage__mongoOpts__pass: password
inxtbridge_storage__mongoOpts__dbName: bridge-test
inxtbridge_server__port: 0
inxtbridge_api_keys__segment_test: inxtbridge_api_keys__segment_test
inxtbridge_application__CLUSTER__0: inxtbridge_application__CLUSTER__0
inxtbridge_logger__level: 5
inxtbridge_storage__mongoOpts__authSource: admin
inxtbridge_stripe__PK_LIVE: inxtbridge_stripe__PK_LIVE
inxtbridge_api_keys__segment: inxtbridge_api_keys__segment
inxtbridge_stripe__SK_LIVE: inxtbridge_stripe__SK_LIVE
inxtbridge_redis__port: 6379
inxtbridge_server__ssl__redirect: 443
inxtbridge_redis__password:
inxtbridge_redis__host: 127.0.0.1
inxtbridge_complex__rpcUser: inxtbridge_complex__rpcUser
inxtbridge_stripe__SIG_TEST: inxtbridge_stripe__SIG_TEST
inxtbridge_gateway__username: inxtbridge_gateway__username
inxtbridge_mailer__auth__pass: inxtbridge_mailer__auth__pass
inxtbridge_stripe__PK_TEST: inxtbridge_stripe__PK_TEST
inxtbridge_complex__rpcPassword: inxtbridge_complex__rpcPassword
inxtbridge_mailer__host: inxtbridge_mailer__host
inxtbridge_server__public__host: inxtbridge_server__public__host
inxtbridge_stripe__SK_TEST: inxtbridge_stripe__SK_TEST
inxtbridge_complex__rpcUrl: inxtbridge_complex__rpcUrl
inxtbridge_mailer__auth__user: inxtbridge_mailer__auth__user
inxtbridge_mailer__sendgrid__api_key: inxtbridge_mailer__sendgrid__api_key
inxtbridge_storage__mongoOpts__server__poolSize: 100
inxtbridge_stripe__SIG: inxtbridge_stripe__SIG
inxtbridge_drive__api: inxtbridge_drive__api
inxtbridge_server__public__port: 443
inxtbridge_mailer__port: 465
inxtbridge_gateway__password: inxtbridge_gateway__password
inxtbridge_NEW_QUEUE_HOST: network-queue
inxtbridge_NEW_QUEUE_PORT: 6379
inxtbridge_NEW_QUEUE_USERNAME: admin
inxtbridge_NEW_QUEUE_PASSWORD: password
inxtbridge_gateway__SIGN_JWT_SECRET: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT3dJQkFBSkJBTDlDTVRlZGEramdIcGJuTmtlSm51TlpnYzg5TGFvMGNQNkl6dlJrYTJ0MUVKbnh5ZTA1CndSWGZLMXFpbTFOMGU3cGhkd0RkRWYvNGJ1eFc5V2g1UWxzQ0F3RUFBUUpCQUpnRXljLzF2VDdGWFNyK3JpTWcKWFAxQ09LNTdaeCtCUFVyamZQTytHYSszWk1MRHhqaG44dGZmV1E4VUpKemJ5VkQ0Q0JqTmNra2xRN3phQ29BNwo1WWtDSVFEd0h2MXhVRkFVUkI2b3QwL0JMMWNxek5SNU80dFBMT0NjL2gyK0o4Y09WUUloQU12b0FrMm5IQWhSClpRNmhNZGFTdWtPVTE3MTYvRGxnNWNiSXNWYXh0bDN2QWlBTUdTT2YzL0lJODEyd0ZueFlPWEJrNGFrYTZwc2MKUkNDVkNHQ3JRZ25QZVFJZ2NTU2E2cFc0YzFFZTN5Qkl0RVNVZ0YxOTNKRDZsYWdUdDlxeXRHVkZ5UmNDSVFDYgp6dE85ampXcERmYTlnWTV2dVB4MFgyUkcxbjJQb0ZYVjVXT29RanNqbnc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
inxtbridge_gateway__JWT_SECRET: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBTDlDTVRlZGEramdIcGJuTmtlSm51TlpnYzg5TGFvMApjUDZJenZSa2EydDFFSm54eWUwNXdSWGZLMXFpbTFOMGU3cGhkd0RkRWYvNGJ1eFc5V2g1UWxzQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=


steps:
- name: Start MongoDB
run: docker run -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password -e MONGO_INITDB_DATABASE=bridge-test -d mongo:4.4
- name: Start Redis
run: docker run -p 6379:6379 -d redis:latest

- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
registry-url: https://npm.pkg.github.com/

- run: yarn --ignore-engines
name: Install dependencies
env:
NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

- run: yarn run test
name: Run Tests

- run: yarn run test:e2e
name: Run E2E Tests
#
# - run: yarn run test-mongo-init
# - run: yarn run test-mongo

- name: Run tests in production image
run: docker compose -f docker-compose.test.yml run --rm --build bridge
7 changes: 1 addition & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
FROM node:16-bullseye-slim
FROM node:16

# Create a non-root user
RUN groupadd -r myuser && useradd -r -g myuser myuser -d /app

# Create package cache
RUN apt update && apt upgrade -y && apt autoremove -y \
&& apt install -y --no-install-recommends curl build-essential python3 git \
&& apt clean

# Create the application directory and set permissions
RUN mkdir -p /app && chown -R myuser:myuser /app

Expand Down
31 changes: 31 additions & 0 deletions docker-compose.test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
services:
bridge:
build: .
env_file: .env.test
command: sh -c "yarn run test && yarn run test:e2e"
depends_on:
mongo:
condition: service_healthy
redis:
condition: service_healthy

mongo:
image: mongo:7.0.40
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: bridge-test
healthcheck:
# Uses the hostname because the init server only listens on localhost.
test: mongosh --host "$$(hostname)" --quiet --eval "db.adminCommand('ping').ok"
interval: 2s
timeout: 5s
retries: 30

redis:
image: redis:latest
healthcheck:
test: redis-cli ping
interval: 2s
timeout: 5s
retries: 30
7 changes: 1 addition & 6 deletions infrastructure/development.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
FROM node:16-bullseye-slim
FROM node:16

# Create a non-root user
RUN groupadd -r myuser && useradd -r -g myuser myuser -d /app

# Create package cache
RUN apt update && apt upgrade -y && apt autoremove -y \
&& apt install -y --no-install-recommends curl build-essential python3 git \
&& apt clean

# Create the application directory and set permissions
RUN mkdir -p /app && chown -R myuser:myuser /app

Expand Down
7 changes: 1 addition & 6 deletions infrastructure/preview.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
FROM node:16-bullseye-slim
FROM node:16

# Create a non-root user
RUN groupadd -r myuser && useradd -r -g myuser myuser -d /app

# Create package cache
RUN apt update && apt upgrade -y && apt autoremove -y \
&& apt install -y --no-install-recommends curl build-essential python3 git \
&& apt clean

# Create the application directory and set permissions
RUN mkdir -p /app && chown -R myuser:myuser /app

Expand Down
Loading