Skip to content

Commit

Permalink
#282 Add postgresql testing (#337)
Browse files Browse the repository at this point in the history
* #282 Add postgresql testing

* #282 Add postgresql testing - 2

* #282 Add postgresql testing - 3

* #282 Add postgresql testing - 3

* #282 test database - 1

* #282 test database - 2

* #282 test database - 3

* #282 test database - 4

* #282 test database - 5

* #282 test database - 6

* #282 test database - 6

* #282 test database - 7

* #282 test database - 8

* #282 test database - 9

* #282 test database - 9

* #282 test database - 10

* #282 test database - 11

* #282 test database - 12

* #282 test database - 13

* #282 Savepoint

* #282 Savepoint

* #282 Update dependencies

* #282 Prepare for versioned release

* #282 Prepare for versioned release

* #282 Remove Darwin artifacts in Linux
  • Loading branch information
docktermj authored Mar 3, 2025
1 parent c35fb98 commit 51faa6f
Show file tree
Hide file tree
Showing 12 changed files with 735 additions and 131 deletions.
106 changes: 106 additions & 0 deletions .github/workflows/go-test-linux-mssql.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: Go test linux - mssql

on: [push]

env:
SENZING_LOG_LEVEL: TRACE
SENZING_TOOLS_DATABASE_URL: "mssql://sa:Passw0rd@mssql:1433/G2"
UBUNTU_VERSION: "24.04"

permissions:
contents: read

jobs:
go-test-linux:
name: "Go test with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Go: ${{ matrix.go }} - mssql"
runs-on: ${{ matrix.os }}
strategy:
matrix:
go: ["1.21"]
os: [ubuntu-latest]
senzingsdk-version: [staging-v4]

services:
mssql:
# https://mcr.microsoft.com/en-us/artifact/mar/mssql/server
env:
ACCEPT_EULA: Y
MSSQL_PID: Developer
MSSQL_SA_PASSWORD: Passw0rd
image: mcr.microsoft.com/mssql/server
ports:
- 1433:1433

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

- name: Set up gotestfmt
uses: gotesttools/gotestfmt-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Copy /opt/senzing/er/resources/ files
run: sudo cp --verbose --recursive rootfs/* /

- name: Copy /opt/microsoft/ files
run: sudo cp --verbose --recursive testdata/* /

- name: Install Senzing SDK
uses: senzing-factory/github-action-install-senzing-sdk@v3
with:
packages-to-install: "senzingsdk-runtime senzingsdk-setup"
senzingsdk-repository-package: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_PACKAGE }}
senzingsdk-repository-path: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_URL }}

# - name: Install dependencies
# run: |
# curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# dpkg -i packages-microsoft-prod.deb
# rm packages-microsoft-prod.deb
# apt-get update
# ACCEPT_EULA=Y apt-get install -y msodbcsql18
# ACCEPT_EULA=Y apt-get install -y mssql-tools18
# echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
# source ~/.bashrc
# apt-get install -y unixodbc-dev
# apt-get install -y unixodbc-dev

- name: Install dependencies 1
run: |
curl -sSL -O "https://packages.microsoft.com/config/ubuntu/${UBUNTU_VERSION}/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
- name: Install dependencies 2
run: |
rm packages-microsoft-prod.deb
sudo apt-get update
- name: Install dependencies 3
run: |
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
# - name: Install dependencies 4
# run: |
# echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
# source ~/.bashrc

# - name: Install dependencies 5
# run: |
# apt-get install -y unixodbc-dev
# apt-get install -y unixodbc-dev

- name: Run go test
run: |
export SENZING_PATH="/opt/senzing"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib"
export ODBCSYSINI="/opt/microsoft/msodbcsql18/etc"
go test -json -v -p 1 ./... 2>&1 | tee /tmp/gotest.log | gotestfmt
69 changes: 69 additions & 0 deletions .github/workflows/go-test-linux-mysql.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Go test linux - mysql

on: [push]

env:
SENZING_LOG_LEVEL: TRACE
SENZING_TOOLS_DATABASE_URL: "mysql://mysql:[email protected]:3306/G2"

permissions:
contents: read

jobs:
go-test-linux:
name: "Go test with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Go: ${{ matrix.go }} - mysql"
runs-on: ${{ matrix.os }}
strategy:
matrix:
go: ["1.21"]
os: [ubuntu-latest]
senzingsdk-version: [staging-v4]

services:
mysql:
# https://hub.docker.com/r/bitnami/mysql
env:
MYSQL_DATABASE: G2
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: mysql
image: bitnami/mysql
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

- name: Set up gotestfmt
uses: gotesttools/gotestfmt-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Copy /opt/senzing/er/resources/ files
run: sudo cp --verbose --recursive rootfs/* /

- name: Install Senzing SDK
uses: senzing-factory/github-action-install-senzing-sdk@v3
with:
packages-to-install: "senzingsdk-runtime senzingsdk-setup"
senzingsdk-repository-package: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_PACKAGE }}
senzingsdk-repository-path: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_URL }}

- name: Install dependencies
run: |
sudo apt-get install mysql-server
- name: Run go test
run: |
export SENZING_PATH="/opt/senzing"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib"
go test -json -v -p 1 ./... 2>&1 | tee /tmp/gotest.log | gotestfmt
69 changes: 69 additions & 0 deletions .github/workflows/go-test-linux-oracle.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Go test linux - oracle

on: [push]

env:
SENZING_LOG_LEVEL: TRACE
SENZING_TOOLS_DATABASE_URL: "oci://sys:Passw0rd@oracle:1521/G2"

permissions:
contents: read

jobs:
go-test-linux:
name: "Go test with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Go: ${{ matrix.go }} - oracle"
runs-on: ${{ matrix.os }}
strategy:
matrix:
go: ["1.21"]
os: [ubuntu-latest]
senzingsdk-version: [staging-v4]

services:
oracle:
# https://container-registry.oracle.com/ords/ocr/ba/database/free
env:
ORACLE_PWD: Passw0rd
image: container-registry.oracle.com/database/free
ports:
- 1521:1521

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

- name: Set up gotestfmt
uses: gotesttools/gotestfmt-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Copy /opt/senzing/er/resources/ files
run: sudo cp --verbose --recursive rootfs/* /

- name: Install Senzing SDK
uses: senzing-factory/github-action-install-senzing-sdk@v3
with:
packages-to-install: "senzingsdk-runtime senzingsdk-setup"
senzingsdk-repository-package: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_PACKAGE }}
senzingsdk-repository-path: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_URL }}

- name: Install dependencies
run: |
curl --output /tmp/instantclient-basic-linux.zip https://download.oracle.com/otn_software/linux/instantclient/2350000/instantclient-basic-linux.x64-23.5.0.24.07.zip
sudo mkdir -p /opt/oracle
sudo unzip -d /opt/oracle /tmp/instantclient-basic-linux.zip
sudo apt-get install libaio1t64 libaio-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1
- name: Run go test
run: |
export SENZING_PATH="/opt/senzing"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib:/opt/oracle/instantclient_23_5"
go test -json -v -p 1 ./... 2>&1 | tee /tmp/gotest.log | gotestfmt
67 changes: 67 additions & 0 deletions .github/workflows/go-test-linux-postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Go test linux - postgres

on: [push]

env:
SENZING_LOG_LEVEL: TRACE
SENZING_TOOLS_DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/G2/?sslmode=disable"

permissions:
contents: read

jobs:
go-test-linux:
name: "Go test with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Go: ${{ matrix.go }} - postgres"
runs-on: ${{ matrix.os }}
strategy:
matrix:
go: ["1.21"]
os: [ubuntu-latest]
senzingsdk-version: [staging-v4]

services:
postgres:
# https://hub.docker.com/_/postgres
env:
POSTGRES_DB: G2
POSTGRES_PASSWORD: postgres
image: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}

- name: Set up gotestfmt
uses: gotesttools/gotestfmt-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Copy /opt/senzing/er/resources/ files
run: sudo cp --verbose --recursive rootfs/* /

- name: Install Senzing SDK
uses: senzing-factory/github-action-install-senzing-sdk@v3
with:
packages-to-install: "senzingsdk-runtime senzingsdk-setup"
senzingsdk-repository-package: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_PACKAGE }}
senzingsdk-repository-path: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_URL }}

- name: Run go test
run: |
export SENZING_PATH="/opt/senzing"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib"
go test -json -v -p 1 ./... 2>&1 | tee /tmp/gotest.log | gotestfmt
2 changes: 1 addition & 1 deletion .github/workflows/go-test-linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
- name: Run go test
run: |
export SENZING_PATH="/opt/senzing"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib:${SENZING_PATH}/er/lib/macos"
export LD_LIBRARY_PATH="${SENZING_PATH}/er/lib"
go test -json -v -p 1 -coverprofile=./cover.out -covermode=atomic -coverpkg=./... ./... 2>&1 | tee /tmp/gotest.log | gotestfmt
- name: Store coverage file
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning].

-

## [0.7.6] - 2025-03-03

### Changed in 0.7.6

- Update dependencies

## [0.7.5] - 2025-02-28

### Changed in 0.7.5
Expand Down
Loading

0 comments on commit 51faa6f

Please sign in to comment.