90 lines
4.6 KiB
YAML
90 lines
4.6 KiB
YAML
name: Docker Compose Actions Workflow
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- 'scripts/**'
|
|
- 'README.md'
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: unzip the file
|
|
run: unzip src/tests/regtestNetwork.zip
|
|
- name: list files
|
|
run: ls -la
|
|
- name: Remove expired certificates and keys
|
|
run: |
|
|
echo "Removing expired certificates and keys so LND will generate fresh ones..."
|
|
rm -f volumes/lnd/alice/tls.cert volumes/lnd/alice/tls.key
|
|
rm -f volumes/lnd/bob/tls.cert volumes/lnd/bob/tls.key
|
|
rm -f volumes/lnd/carol/tls.cert volumes/lnd/carol/tls.key
|
|
rm -f volumes/lnd/dave/tls.cert volumes/lnd/dave/tls.key
|
|
- name: Build the stack
|
|
run: docker compose --project-directory ./ -f src/tests/docker-compose.yml up -d
|
|
- name: Check container status
|
|
run: |
|
|
echo "Container status:"
|
|
docker ps -a
|
|
echo "Alice logs:"
|
|
docker logs polar-n2-alice --tail 20 || true
|
|
echo "Bob logs:"
|
|
docker logs polar-n2-bob --tail 20 || true
|
|
- name: Wait for LND containers to be ready
|
|
run: |
|
|
echo "Waiting for LND containers to start and generate certificates..."
|
|
sleep 30
|
|
# Wait for containers to be running first
|
|
echo "Waiting for containers to be running..."
|
|
timeout 120 bash -c 'until docker ps --filter "name=polar-n2-alice" --filter "status=running" --format "{{.Names}}" | grep -q polar-n2-alice; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker ps --filter "name=polar-n2-bob" --filter "status=running" --format "{{.Names}}" | grep -q polar-n2-bob; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker ps --filter "name=polar-n2-carol" --filter "status=running" --format "{{.Names}}" | grep -q polar-n2-carol; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker ps --filter "name=polar-n2-dave" --filter "status=running" --format "{{.Names}}" | grep -q polar-n2-dave; do sleep 5; done'
|
|
echo "Containers are running, waiting for certificates..."
|
|
# Wait for certificates to be generated
|
|
timeout 120 bash -c 'until docker exec polar-n2-alice test -f /home/lnd/.lnd/tls.cert; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker exec polar-n2-bob test -f /home/lnd/.lnd/tls.cert; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker exec polar-n2-carol test -f /home/lnd/.lnd/tls.cert; do sleep 5; done'
|
|
timeout 120 bash -c 'until docker exec polar-n2-dave test -f /home/lnd/.lnd/tls.cert; do sleep 5; done'
|
|
- name: Copy alice cert file
|
|
run: docker cp polar-n2-alice:/home/lnd/.lnd/tls.cert alice-tls.cert
|
|
- name: Copy bob cert file
|
|
run: docker cp polar-n2-bob:/home/lnd/.lnd/tls.cert bob-tls.cert
|
|
- name: Copy carol cert file
|
|
run: docker cp polar-n2-carol:/home/lnd/.lnd/tls.cert carol-tls.cert
|
|
- name: Copy dave cert file
|
|
run: docker cp polar-n2-dave:/home/lnd/.lnd/tls.cert dave-tls.cert
|
|
- name: Copy alice macaroon file
|
|
run: docker cp polar-n2-alice:/home/lnd/.lnd/data/chain/bitcoin/regtest/admin.macaroon alice-admin.macaroon
|
|
- name: Copy bob macaroon file
|
|
run: docker cp polar-n2-bob:/home/lnd/.lnd/data/chain/bitcoin/regtest/admin.macaroon bob-admin.macaroon
|
|
- name: Copy carol macaroon file
|
|
run: docker cp polar-n2-carol:/home/lnd/.lnd/data/chain/bitcoin/regtest/admin.macaroon carol-admin.macaroon
|
|
- name: Copy dave macaroon file
|
|
run: docker cp polar-n2-dave:/home/lnd/.lnd/data/chain/bitcoin/regtest/admin.macaroon dave-admin.macaroon
|
|
- name: copy env file
|
|
run: cp src/tests/.env.test .env
|
|
- name: List files
|
|
run: ls -la
|
|
- name: Cache node modules
|
|
id: cache-npm
|
|
uses: actions/cache@v3
|
|
env:
|
|
cache-name: cache-node-modules
|
|
with:
|
|
# npm cache files are stored in `~/.npm` on Linux/macOS
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('package-lock.json', '*/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
|
|
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
|
|
name: List the state of node modules
|
|
continue-on-error: true
|
|
run: npm list
|
|
- name: Install dependencies
|
|
run: npm install
|
|
- name: Run tests
|
|
run: npm test
|