diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9d0a4e8..4772428 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,19 +21,36 @@ jobs: matrix: node-version: [16, 18] + services: + mssql: + image: mcr.microsoft.com/mssql/server:2019-latest + ports: + - 1433:1433 + options: >- + --health-cmd "exit 0" + --health-interval 10s + --health-timeout 10s + --health-retries 5 + env: + SA_PASSWORD: "P@ssw0rdP@ssw0rd" + ACCEPT_EULA: "Y" + steps: - uses: actions/checkout@v4 - name: config run: cp .env.dev .env - - uses: isbang/compose-action@v1.5.1 - with: - services: mssql + - name: Wait for SQL Server to be ready + run: | + for i in {1..30}; do + /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P P@ssw0rdP@ssw0rd -Q "SELECT 1" && break + sleep 1 + done - # - name: Start MSSQL containers - # working-directory: ./ - # run: docker-compose up -d mssql + - name: Create database + run: | + /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P P@ssw0rdP@ssw0rd -Q "CREATE DATABASE testdb" - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 @@ -41,8 +58,10 @@ jobs: node-version: ${{ matrix.node-version }} # cache: npm - - name: npm install and test + - name: npm install run: | - cp ./test/_config.docker.json ./test/config.json + cp ./test/_config.github.json ./test/config.json npm install - npm test + + - name: npm test + run: npm test diff --git a/README_dev.md b/README_dev.md index 3e317ea..d45e529 100644 --- a/README_dev.md +++ b/README_dev.md @@ -16,7 +16,7 @@ cp .env.dev .env ```shell docker compose build --no-cache --pull -docker-compose up -d mssql +docker compose up -d mssql ``` ```shell @@ -42,13 +42,20 @@ run node-red and mssql use docker ```shell docker compose build --no-cache -docker-compose up -d +docker compose up -d +``` + +```shell +docker compose exec nodered npm install node-red-contrib-mssql-plus-mssql +docker compose exec nodered npm install node-red-contrib-mssql-plus-mssql@0.12.1 +docker compose exec nodered npm install /workspace/node-red-contrib-mssql-plus-mssql +docker compose restart nodered ``` view node-red container log output ```shell -docker-compose logs -f node-red +docker compose logs -f node-red ``` Open `http://127.0.0.1:1880` diff --git a/docker-compose.yml b/docker-compose.yml index e39021d..21d1d2e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,16 @@ -version: "3" - services: nodered: - image: nodered/node-red + # image: nodered/node-red + build: + context: ./docker/nodered environment: - TZ=${TZ} ports: - 1880:1880 - 9229:9229 volumes: - - .:/workspace + - .:/workspace/node-red-contrib-mssql-plus-mssql depends_on: - mssql diff --git a/docker/nodered/Dockerfile b/docker/nodered/Dockerfile new file mode 100644 index 0000000..5a621ac --- /dev/null +++ b/docker/nodered/Dockerfile @@ -0,0 +1,5 @@ +FROM nodered/node-red:latest-18 + +WORKDIR /usr/src/node-red + +RUN npm install node-red-contrib-inspector diff --git a/test/_config.github.json b/test/_config.github.json new file mode 100644 index 0000000..6d50b2a --- /dev/null +++ b/test/_config.github.json @@ -0,0 +1,14 @@ +{ + "server": "localhost", + "port": 1433, + "username": "sa", + "password": "P@ssw0rdP@ssw0rd", + "database": "testdb", + "encyption": false, + "tdsVersion": "7_4", + "trustServerCertificate": true, + "useUTC": true, + "connectTimeout": 15000, + "requestTimeout": 15000, + "cancelTimeout": 5000 +}