Merge pull request #354 from TileDB-Inc/phw/prevent-int-overflow #830
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: TileDB-Go | |
on: | |
release: | |
types: [ published ] | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
env: | |
# The version of TileDB to test against. | |
CORE_VERSION: "2.26.1" | |
# The abbreviated git commit hash to use. | |
CORE_HASH: "db1cee4" | |
jobs: | |
golangci: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Install TileDB because the linter needs the C header files. | |
- name: Run TileDB install script | |
run: ./.github/scripts/install_tiledb_linux.sh | |
shell: bash | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: stable | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v6 | |
with: | |
version: latest | |
Linux_Test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# Will be checking following versions | |
go: ["1.20", "1.21", "1.22", "1.23"] | |
steps: | |
# Checks out repository | |
- uses: actions/checkout@v4 | |
# Log details for the runner. Useful for debugging | |
- name: Run lscpu for runner details | |
run: lscpu | |
shell: bash | |
# Downloads TileDB-Core from release assets and install | |
- name: Run TileDB install script | |
run: ./.github/scripts/install_tiledb_linux.sh | |
shell: bash | |
# Following action sets up Go and uses the strategy matrix to test on | |
# specific versions | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Install dependencies | |
run: go get -t . | |
# Tests TileDB-Go | |
- name: Test TileDB-Go | |
run: go test -v ./... | |
Macos_Test: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
# Will be checking following versions | |
go: ["1.20", "1.21", "1.22", "1.23"] | |
steps: | |
# Checks out repository | |
- uses: actions/checkout@v4 | |
# Log details for the runner. Useful for debugging | |
- name: Run sysctl for runner details | |
run: sysctl -a | |
shell: bash | |
# Downloads TileDB-Core from release assets and install | |
- name: Run TileDB install script | |
run: ./.github/scripts/install_tiledb_macos.sh | |
shell: bash | |
# Following action sets up Go and uses the strategy matrix to test on | |
# specific versions | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Install dependencies | |
run: go get -t . | |
# Tests TileDB-Go | |
- name: Test TileDB-Go | |
# We need to explicitly pass the path to libtiledb.dylib to Go because of | |
# changes in recent macOS versions: | |
# https://github.com/golang/go/issues/36572#issuecomment-817205746 | |
run: CGO_LDFLAGS="-Wl,-rpath,/usr/local/lib" go test -v ./... | |
Linux_Address_Sanitizer: | |
# Only run this job for releases | |
if: github.event_name == 'release' && github.event.action == 'published' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# Will be checking following versions | |
go: ["1.20", "1.21", "1.22", "1.23"] | |
steps: | |
# Checks out repository | |
- uses: actions/checkout@v4 | |
# Log details for the runner. Useful for debugging | |
- name: Run lscpu for runner details | |
run: lscpu | |
shell: bash | |
# Downloads TileDB-Core from release assets and install | |
- name: Run TileDB install script | |
run: ./.github/scripts/install_tiledb_linux_debug.sh | |
shell: bash | |
# Following action sets up Go and uses the strategy matrix to test on | |
# specific versions | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Install dependencies | |
run: go get -t . | |
# Tests TileDB-Go | |
- name: Running examples using address sanitizer flags | |
run: ./.github/scripts/build_with_sanitizer_and_run.sh |