Chore: Disable CGo in tests (#108764)
* make cgo optional for sqlite * update go.mod; check error code differently * reduce api surface even more * move test errors into sqlite package * CGO_ENABLED=0 in unit tests * disable for enterprise, too * add driver name constant * remove unused constants * make test an integration one * try integration tests without cgo * implement error codes for modernc sqlite driver * typo fix * missing return * use error pointer as an interface * alias the driver * update workspace, check for test errors too * check error properly * add missing driver after rebase * fix missing import after rebase * debugging, lets try again * properly parse options, revert many previous changes * remove another log * better url parsing * revert test rename, leave it for later * revert reusedSession in unistore * revert more code * remove driver name * revert formatting * add integration test without cgo for sqlite * remove tracing and logging * bring driver alias back * fix type * wrong package
This commit is contained in:
@@ -68,7 +68,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/shard.sh -N"$SHARD")"
|
||||
go test -short -timeout=30m "${PACKAGES[@]}"
|
||||
CGO_ENABLED=0 go test -short -timeout=30m "${PACKAGES[@]}"
|
||||
|
||||
grafana-enterprise:
|
||||
# Run this workflow for non-PR events (like pushes to `main` or `release-*`) OR for internal PRs (PRs not from forks)
|
||||
@@ -118,7 +118,7 @@ jobs:
|
||||
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/shard.sh -N"$SHARD")"
|
||||
# This tee requires pipefail to be set, otherwise `go test`'s exit code is thrown away.
|
||||
# That means having no `-o pipefail` => failing tests => exit code 0, which is wrong.
|
||||
go test -short -timeout=30m "${PACKAGES[@]}"
|
||||
CGO_ENABLED=0 go test -short -timeout=30m "${PACKAGES[@]}"
|
||||
|
||||
# This is the job that is actually required by rulesets.
|
||||
# We need to require EITHER the OSS or the Enterprise job to pass.
|
||||
|
||||
@@ -37,7 +37,6 @@ jobs:
|
||||
uses: ./.github/actions/change-detection
|
||||
with:
|
||||
self: .github/workflows/pr-test-integration.yml
|
||||
|
||||
sqlite:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.changed == 'true'
|
||||
@@ -70,6 +69,39 @@ jobs:
|
||||
set -euo pipefail
|
||||
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
|
||||
go test -tags=sqlite -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
|
||||
|
||||
sqlite_nocgo:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.changed == 'true'
|
||||
strategy:
|
||||
matrix:
|
||||
# We don't need more than this since it has to wait for the other tests.
|
||||
shard: [
|
||||
1/4, 2/4, 3/4, 4/4,
|
||||
]
|
||||
fail-fast: false
|
||||
|
||||
name: Sqlite Without CGo (${{ matrix.shard }})
|
||||
runs-on: ubuntu-x64-large-io
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5.5.0
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
cache: true
|
||||
- name: Run tests
|
||||
env:
|
||||
SHARD: ${{ matrix.shard }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
|
||||
CGO_ENABLED=0 go test -tags=sqlite -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
|
||||
mysql:
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.changed == 'true'
|
||||
|
||||
Reference in New Issue
Block a user