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
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: test docker compose

on:
push:
pull_request:
workflow_dispatch:
# schedule:
# - cron: "0 2 * * *" # UTC



jobs:
run_tests:
name: ${{ matrix.name }}
uses: ./.github/workflows/reusable-compose.yml
strategy:
fail-fast: false
matrix:
include:
- name: Minimal test
compose_file: docker-compose.yml

- name: All comopose files test
compose_file: docker-compose.yml:docker-compose.gobgp.yml:docker-compose.clickhouse.yml:docker-compose.grafana.yml:docker-compose.trafficdb.yml:docker-compose.web-api.yml:docker-compose.gobgp.yml
with:
runner: ${{ matrix.runner || 'ubuntu-24.04'}}
compose_file: ${{ matrix.compose_file }}
version: ${{ matrix.version || 'latest' }}
api_v2: ${{ matrix.api_v2 || false }}
upload_mapping: ${{ matrix.upload_mapping || false}}
project_name: ${{ matrix.project_name || 'fnm' }}


77 changes: 77 additions & 0 deletions .github/workflows/reusable-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: run docker compose

on:
workflow_call:
inputs:
runner:
type: string
default: ubuntu-24.04
compose_file:
type: string
default: docker-compose.yml
required: true
#path:
# type: string
# default: ${PWD}
version:
type: string
default: latest
api_v2:
type: boolean
default: false
upload_mapping:
type: boolean
default: false
project_name:
type: string
default: fnm


jobs:
run_test:
runs-on: ${{ inputs.runner}}
env:
DEBIAN_FRONTEND: noninteractive
COMPOSE_FILE: ${{ inputs.compose_file}}
FNM_VERSION: ${{ inputs.version}}
FNM_WEB_API_V2: ${{ inputs.api_v2}}
FNM_NOT_UPLOAD_ASN_MAPPING: ${{ inputs.upload_mapping}}
COMPOSE_PROJECT_NAME: ${{ inputs.project_name}}
FNM_PATH: ${{ github.workspace }}


steps:
- uses: actions/checkout@v6
- run: sudo apt update && sudo apt install -y pwgen
- name: Generate .env file
env:
FNM_PATH: ${{ github.workspace }}
run: |
cat > .env << EOF
FNM_PATH=${{ github.workspace }}
FNM_VERSION=${{ env.FNM_VERSION}}
FNM_WEB_API_V2=${{ env.FNM_WEB_API_V2}}
FNM_NOT_UPLOAD_ASN_MAPPING=${{ env.FNM_NOT_UPLOAD_ASN_MAPPING}}

COMPOSE_PROJECT_NAME=${{ env.COMPOSE_PROJECT_NAME}}
COMPOSE_FILE=${{ env.COMPOSE_FILE}}
EOF
cat .env
echo -e "${FNM_PATH}"
- run: docker compose config
- name: Pull images
run: docker compose pull
- name: Clean volumes
run: docker compose down --volumes --remove-orphans || true
- name: Remove storage dir
run: rm -rf ./storages
- name: Init secrets
run: ./init_secrets.sh
- name: Recreate volumes
run: ./create_storage_default_dirs.sh
- name: Run docker compose
run: docker compose up -d --wait
- run: docker compose ps -a
- run: docker compose logs fastnetmon