Go test darwin #1121
This file contains hidden or 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: Go test darwin | |
| on: | |
| pull_request: | |
| branches: [main] | |
| schedule: | |
| - cron: "15 7 * * *" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} | |
| cancel-in-progress: true | |
| env: | |
| SENZING_LOG_LEVEL: TRACE | |
| SENZING_TOOLS_DATABASE_URL: sqlite3://na:na@nowhere/tmp/sqlite/G2C.db | |
| permissions: {} | |
| jobs: | |
| sdk-versions: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| senzingsdk-versions: ${{ steps.cfg.outputs.senzingsdk-versions }} | |
| steps: | |
| - id: cfg | |
| uses: senzing-factory/build-resources/sdk-versions@v4 | |
| go-test-darwin: | |
| name: "Go test with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Go: ${{ matrix.go }}" | |
| needs: sdk-versions | |
| permissions: | |
| contents: read | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| go: ["1.26"] | |
| os: [macos-latest] | |
| senzingsdk-version: ${{ fromJSON(needs.sdk-versions.outputs.senzingsdk-versions) }} | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Setup go ${{ matrix.go }} | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ matrix.go }} | |
| - name: Set up gotestfmt | |
| uses: gotesttools/gotestfmt-action@v2 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Install Senzing SDK | |
| uses: senzing-factory/github-action-install-senzing-sdk@v4 | |
| with: | |
| senzingsdk-version: ${{ matrix.senzingsdk-version }} | |
| - name: Set environment variables | |
| run: | | |
| SENZING_PATH="${HOME}/senzing" | |
| { | |
| echo "SENZING_PATH=${SENZING_PATH}" | |
| echo "LD_LIBRARY_PATH=${SENZING_PATH}/er/lib:/opt/homebrew/lib" | |
| echo "DYLD_LIBRARY_PATH=${SENZING_PATH}/er/lib:/opt/homebrew/lib" | |
| echo CGO_CFLAGS="-g -I${SENZING_PATH}/er/sdk/c" | |
| echo CGO_LDFLAGS="-L${SENZING_PATH}/er/lib -lSz -Wl,-no_warn_duplicate_libraries" | |
| } >> "$GITHUB_ENV" | |
| - name: Enable core dumps | |
| uses: senzing-factory/github-action-core-dumps@v1 | |
| with: | |
| enable-core-dumps: "true" | |
| - name: Run go test | |
| env: | |
| SENZING_SDK_VERSION: ${{ matrix.senzingsdk-version }} | |
| run: | | |
| ulimit -c unlimited | |
| GOTRACEBACK=crash go test -exec "${GITHUB_WORKSPACE}/bin/macos_exec_dyld.sh" -json -v -p 1 -coverprofile="./cover-${SENZING_SDK_VERSION}.out" -covermode=atomic -coverpkg=./... ./... 2>&1 | tee "/tmp/gotest-${SENZING_SDK_VERSION}.log" | gotestfmt | |
| - if: always() | |
| name: Analyze core dumps | |
| uses: senzing-factory/github-action-core-dumps@v1 | |
| with: | |
| analyze-core-dumps: "true" | |
| core-file-suffix: go-${{ matrix.os }}-${{ matrix.go }}-${{ matrix.senzingsdk-version }} | |
| - name: Store coverage file | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: "cover-${{ matrix.senzingsdk-version }}.out" | |
| path: "./cover-${{ matrix.senzingsdk-version }}.out" | |
| - name: Upload test log | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: "test-log-${{ matrix.senzingsdk-version }}" | |
| path: "/tmp/gotest-${{ matrix.senzingsdk-version }}.log" | |
| if-no-files-found: error | |
| coverage: | |
| name: Coverage | |
| needs: go-test-darwin | |
| permissions: | |
| contents: read | |
| uses: senzing-factory/build-resources/.github/workflows/go-coverage.yaml@v4 | |
| with: | |
| coverage-config: ./.github/coverage/testcoverage.yaml | |
| profile: "cover-production-v4.out,cover-staging-v4.out" | |
| slack-notification: | |
| needs: [go-test-darwin] | |
| if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.go-test-darwin.result ) && github.event_name == 'schedule' }} | |
| secrets: | |
| SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | |
| SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }} | |
| uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v4 | |
| with: | |
| job-status: ${{ needs.go-test-darwin.result }} |