diff --git a/.dclintrc.json b/.dclintrc.json new file mode 100644 index 0000000..eddf82b --- /dev/null +++ b/.dclintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "no-duplicate-exported-ports": 0 + } +} diff --git a/.github/workflows/composer-normalize.yml b/.github/workflows/composer-normalize.yml new file mode 100644 index 0000000..865ade7 --- /dev/null +++ b/.github/workflows/composer-normalize.yml @@ -0,0 +1,23 @@ +name: Composer Normalize + +on: + push: + branches: + - main + paths: + - composer.json + - .github/workflows/composer-normalize.yml + pull_request: + branches: + - main + paths: + - composer.json + - .github/workflows/composer-normalize.yml + +jobs: + composer-normalize: + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Normalize composer.json (check) + run: composer normalize --dry-run + php-version: '8.2' diff --git a/.github/workflows/conventional-pr-title.yml b/.github/workflows/conventional-pr-title.yml new file mode 100644 index 0000000..c1cf897 --- /dev/null +++ b/.github/workflows/conventional-pr-title.yml @@ -0,0 +1,9 @@ +name: Conventional PR Title + +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +jobs: + conventional-pr-title: + uses: openCoreEMR/github-workflows-public/.github/workflows/conventional-pr-title.yml@0.0.4 diff --git a/.github/workflows/dclint.yml b/.github/workflows/dclint.yml new file mode 100644 index 0000000..422dbec --- /dev/null +++ b/.github/workflows/dclint.yml @@ -0,0 +1,25 @@ +name: dclint + +on: + push: + branches: + - main + paths: + - '**/compose.yml' + - '**/compose.yaml' + - '**/docker-compose*.yml' + - '**/docker-compose*.yaml' + - .github/workflows/dclint.yml + pull_request: + branches: + - main + paths: + - '**/compose.yml' + - '**/compose.yaml' + - '**/docker-compose*.yml' + - '**/docker-compose*.yaml' + - .github/workflows/dclint.yml + +jobs: + dclint: + uses: openCoreEMR/github-workflows-public/.github/workflows/dclint.yml@0.0.4 diff --git a/compose.yml b/compose.yml index ae51423..79ff3a3 100644 --- a/compose.yml +++ b/compose.yml @@ -1,57 +1,76 @@ # OpenEMR CLI Import Codes - Development Environment # # Extends OpenEMR's development-easy services with overrides: -# - Random ports instead of fixed (8300, 9300, etc.) +# - Random ports bound to 127.0.0.1 (avoid conflicts; never expose dev DB to LAN) # - CLI tool mounted into OpenEMR container # - PHPUnit services available via profiles +name: oce-cli-import-codes + services: - openemr: + couchdb: + ports: !override + - target: 5984 + host_ip: 127.0.0.1 + protocol: tcp + mode: host + - target: 6984 + host_ip: 127.0.0.1 + protocol: tcp + mode: host extends: file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml - service: openemr + service: couchdb + + mysql: ports: !override - - "80" - - "443" + - target: 3306 + host_ip: 127.0.0.1 + protocol: tcp + mode: host + extends: + file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml + service: mysql + + openemr: volumes: - .:/var/www/localhost/htdocs/openemr/oce-cli-import-codes:rw + ports: !override + - target: 80 + host_ip: 127.0.0.1 + protocol: tcp + mode: host + - target: 443 + host_ip: 127.0.0.1 + protocol: tcp + mode: host healthcheck: test: ["CMD", "curl", "-fsk", "https://localhost:443/"] interval: 10s timeout: 5s retries: 3 start_period: 3m - - mysql: extends: file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml - service: mysql - ports: !override - - "3306" + service: openemr - phpmyadmin: + openldap: extends: file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml - service: phpmyadmin - ports: !override - - "80" + service: openldap - couchdb: - extends: - file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml - service: couchdb + phpmyadmin: ports: !override - - "5984" - - "6984" - - openldap: + - target: 80 + host_ip: 127.0.0.1 + protocol: tcp + mode: host extends: file: vendor/openemr/openemr/docker/development-easy/docker-compose.yml - service: openldap + service: phpmyadmin # PHPUnit test runner phpunit: - profiles: [test] build: context: . dockerfile: Dockerfile.test @@ -59,10 +78,10 @@ services: - .:/app - /app/vendor command: vendor/bin/phpunit --testdox + profiles: [test] # PHPUnit with coverage phpunit-coverage: - profiles: [test] build: context: . dockerfile: Dockerfile.test @@ -70,9 +89,10 @@ services: - .:/app - /app/vendor - ./htmlcov:/app/htmlcov - command: vendor/bin/phpunit --coverage-html htmlcov --coverage-text environment: XDEBUG_MODE: coverage + command: vendor/bin/phpunit --coverage-html htmlcov --coverage-text + profiles: [test] volumes: databasevolume: {}