Skip to content

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows #1444

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows #1444

Workflow file for this run

name: ODBC Driver for Windows
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
workflow_dispatch:
inputs:
sign:
description: Build and Sign Artifacts (for release only)
type: boolean
required: false
default: false
env:
SIGNING_ENABLED: ${{ github.event.inputs.sign }}
CI_OUTPUT_PATH: "ci-output"
ODBC_LIB_PATH: "${{github.workspace}}/build/odbc/lib"
ODBC_BIN_PATH: "${{github.workspace}}/build/odbc/bin/Release"
ODBC_DEBUG_PATH: "${{github.workspace}}/build/odbc/bin/Debug"
ODBC_BUILD_PATH: "${{github.workspace}}/build/odbc/cmake"
VCPKG_ROOT: "c:/vcpkg"
DOCUMENTDB_HOME: "${{github.workspace}}/build/odbc/bin/Release"
DOC_DB_KEYPAIR: ${{secrets.DOC_DB_KEYPAIR}}
DOC_DB_USER_NAME: ${{secrets.DOC_DB_USER_NAME}}
DOC_DB_PASSWORD: ${{secrets.DOC_DB_PASSWORD}}
DOC_DB_USER: ${{secrets.DOC_DB_USER}}
DOC_DB_HOST: ${{secrets.DOC_DB_HOST}}
DOC_DB_ODBC_INTEGRATION_TEST: 1
DOC_DB_LOCAL_PORT: 27019
DOC_DB_REMOTE_PORT: 27017
DOC_DB_PRIV_KEY_FILE: ~/certs/docdb-sshtunnel.pem
DOC_DB_LOG_PATH: "${{github.workspace}}/build/odbc/logs"
DOC_DB_LOG_LEVEL: "debug"
MONGO_IMPORT_COMMAND: "mongoimport.exe"
# Artifacts are created when pushing to develop branch on merge of pull requests.
SHOULD_CREATE_ARTIFACTS: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/develop') || github.event.inputs.sign == true || github.event.inputs.sign == 'true' }}
jobs:
trufflehog-git-secrets-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: TruffleHog OSS
uses: trufflesecurity/trufflehog@main
with:
path: ./
base: ${{ github.event.repository.default_branch }}
head: HEAD
extra_args: --debug --only-verified
- name: git secrets
run: |
git clone https://github.com/awslabs/git-secrets.git
cd git-secrets
sudo make install
cd ..
git secrets --register-aws
git secrets --scan-history
build-windows32:
runs-on: windows-2022
needs: trufflehog-git-secrets-scan
steps:
- uses: actions/checkout@v2
# TODO Reactivate cppcheck
# https://github.com/aws/amazon-documentdb-odbc-driver/issues/171
# - name: setup-cppcheck
# id: setup_cppcheck
# run: |
# choco install cppcheck -y -d
# echo "C:\Program Files\Cppcheck" >> $env:GITHUB_PATH
# - name: run-cppcheck
# id: run-cppcheck
# run: |
# .\run_cppcheck.ps1
# - name: upload-cppcheck-results
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: cppcheck-results
# path: cppcheck-results.log
- name: Update environment with ODBC_DRIVER_VERSION
shell: pwsh
run: |
Get-Content ./src/ODBC_DRIVER_VERSION.txt | ForEach-Object { echo "ODBC_DRIVER_VERSION=$_"; break; } >> $env:GITHUB_ENV
- name: Update environment with JDBC_DRIVER_VERSION
shell: pwsh
run: |
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
# Get first JDK to provide access to jpackage
- name: Get Java distribution (JDK 17, 32-bit)
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '17'
architecture: x86
# Get second JDK to provide access to jlink
- name: Get Java distribution (JDK 11, 32-bit)
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x86" -JdkVersion "11"
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: "Update path for Java"
run: |
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Ensure jlink and jpackage have the expected versions
run: |
if ( -not ((jlink --version) -like "11*") ) { exit 1 }
if ( -not ((jpackage --version) -like "17*") ) { exit 1 }
- name: "Update path for WIX Toolset"
run: |
echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Get latest version of CMake
uses: lukka/get-cmake@latest
- name: add-msbuild-to-path
uses: microsoft/[email protected]
- name: Extract key-pair into file
run: |
mkdir -p ~/certs
echo "${{env.DOC_DB_KEYPAIR}}" > ~/certs/docdb-sshtunnel.pem
chmod 400 ~/certs/docdb-sshtunnel.pem
mkdir -p ~/.ssh
copy ./src/odbc-test/config/ssh_config ~/.ssh/config
- name: Cache dependencies Windows 32
id: cache-dependencies-windows-32
uses: actions/cache@v3
with:
path: |
${{ env.VCPKG_ROOT }}
key: ${{ runner.os }}-cache-dependencies-windows-32-v1
- name: Cache DocumentDB JDBC JAR
id: cache-documentdb-jdbc-jar
uses: actions/cache@v3
with:
path: |
cache/jar
key: cache-documentdb-jdbc-jar-${{env.JDBC_DRIVER_VERSION}}
- name: Download DocumentDB JDBC JAR
if: steps.cache-documentdb-jdbc-jar.outputs.cache-hit != 'true'
run: |
mkdir -p cache/jar
cd cache/jar
Invoke-WebRequest https://github.com/aws/amazon-documentdb-jdbc-driver/releases/download/v${{env.JDBC_DRIVER_VERSION}}/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar -o documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar
- name: Install DocumentDB JDBC JAR
run: |
mkdir -p ${{env.ODBC_BIN_PATH}}/libs
cp cache/jar/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar ${{env.ODBC_BIN_PATH}}/libs
- name: Install dependencies Windows
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-VcpkgPackages -Triplet x86-windows
env:
VCPKG_ROOT: ${{ env.VCPKG_ROOT }}
- name: configure-and-build-driver
run: |
.\build_win_release32.ps1
env:
OPENSSL_ROOT_DIR: '${{ env.VCPKG_ROOT }}/packages/openssl_x86-windows'
- name: "Configure AWS credentials"
if: ${{env.SIGNING_ENABLED == 'true'}}
uses: aws-actions/configure-aws-credentials@v1
with:
role-skip-session-tagging: true
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-2
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
role-external-id: ${{ secrets.AWS_ROLE_EXTERNAL_ID }}
role-duration-seconds: 3600
- name: Sign Executables
if: ${{env.SIGNING_ENABLED == 'true'}}
id: sign-executables-32
shell: pwsh
run: |
. ./scripts/sign_installer.ps1
Install-Jq
Invoke-SignInstaller "${{env.ODBC_BIN_PATH}}" x86 ${{env.ODBC_DRIVER_VERSION}} ${{ secrets.AWS_UNSIGNED_BUCKET }} ${{ secrets.AWS_SIGNED_BUCKET }} ${{ secrets.AWS_KEY }}
- name: Upload ODBC driver build at push to develop
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
uses: actions/upload-artifact@v3
with:
name: docdb-odbc-driver-win32-${{env.ODBC_DRIVER_VERSION}}
path: |
${{env.ODBC_BIN_PATH}}/*.dll
${{env.ODBC_BIN_PATH}}/*.msi
${{env.ODBC_BIN_PATH}}/*.exe
${{env.ODBC_BIN_PATH}}/*.pdb
!${{env.ODBC_BIN_PATH}}/images
!${{env.ODBC_BIN_PATH}}/jpackage-resources
!${{env.ODBC_BIN_PATH}}/runtime-image
- name: Upload performance test at push to develop
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
uses: actions/upload-artifact@v3
with:
name: performance-win32-${{env.ODBC_DRIVER_VERSION}}
path: build/odbc/bin/Release/performance.exe
- name: register-driver
run: |
.\src\odbc\install\install_amd64.cmd ${{env.ODBC_BIN_PATH}}\documentdb.odbc.dll ${{env.ODBC_BIN_PATH}}\documentdb.odbc.dll
- name: Setup MongoDB
run: |
./scripts/reinstall_mongodb.ps1
- name: Import test data
run: |
./src/odbc-test/scripts/import_test_data.ps1
- name: run-tests
id: runtests
run: |
mkdir -p "${{env.DOC_DB_LOG_PATH}}"
Start-Process -NoNewWindow ssh "-f -N -o UserKnownHostsFile=/temp -o StrictHostKeyChecking=no -i ${{env.DOC_DB_PRIV_KEY_FILE}} -L${{env.DOC_DB_LOCAL_PORT}}:${{secrets.DOC_DB_HOST}}:${{env.DOC_DB_REMOTE_PORT}} ${{secrets.DOC_DB_USER}}"
${{env.ODBC_BIN_PATH}}/documentdb-odbc-tests.exe
- name: upload-test-report
if: always()
uses: EnricoMi/publish-unit-test-result-action/[email protected]
with:
check_name: "Windows x32 Build Unit Test Results Check"
comment_title: "Windows 2022 (x32) Build Unit Test Results"
files: ./odbc_test_result.xml
- name: upload-test-file
if: always() && (steps.runtests.outcome == 'failure')
uses: actions/upload-artifact@v3
with:
name: odbc-test-results-win32
path: |
./odbc_test_result.xml
./build/odbc/logs/docdb_odbc_*.log
# - name: build-installer
# if: success()
# run: |
# .\scripts\build_installer.ps1 Release Win32 .\src $Env:ODBC_BUILD_PATH $Env:AWS_SDK_INSTALL_PATH
# - name: prepare-output
# if: success()
# run: |
# .\scripts\prepare_ci_output.ps1 $Env:ODBC_BIN_PATH $Env:ODBC_LIB_PATH $Env:ODBC_BUILD_PATH
# - name: upload-build
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: windows32-build
# path: ci-output/build
# - name: upload-installer
# if: success()
# uses: actions/upload-artifact@v3
# with:
# name: windows32-installer
# path: ci-output/installer
# - name: upload-test-results
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: windows-test-results
# path: $CI_OUTPUT_PATH/test
build-windows64:
runs-on: windows-2022
needs: trufflehog-git-secrets-scan
steps:
- uses: actions/checkout@v2
- uses: aws-actions/configure-aws-credentials@v1
with:
role-skip-session-tagging: true
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-2
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
role-external-id: ${{ secrets.AWS_ROLE_EXTERNAL_ID }}
role-duration-seconds: 3600
# TODO Reactivate cppcheck
# https://github.com/aws/amazon-documentdb-odbc-driver/issues/171
# - name: run-cppcheck
# id: setup_cppcheck
# run: |
# choco install cppcheck -y -d
# echo "C:\Program Files\Cppcheck" >> $env:GITHUB_PATH
# - name: run-cppcheck
# id: run-cppcheck
# run: |
# .\run_cppcheck.ps1
# - name: upload-cppcheck-results
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: cppcheck-results
# path: cppcheck-results.log
- name: Update environment with ODBC_DRIVER_VERSION
shell: pwsh
run: |
Get-Content ./src/ODBC_DRIVER_VERSION.txt | ForEach-Object { echo "ODBC_DRIVER_VERSION=$_"; break; } >> $env:GITHUB_ENV
- name: Update environment with JDBC_DRIVER_VERSION
shell: pwsh
run: |
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
- name: Get Java distribution
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x64"
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: "Update path for Java"
run: |
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: "Update path for WIX Toolset"
run: |
echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Get latest version of CMake
uses: lukka/get-cmake@latest
- name: add-msbuild-to-path
uses: microsoft/[email protected]
- name: Extract key-pair into file
run: |
mkdir -p ~/certs
echo "${{env.DOC_DB_KEYPAIR}}" > ~/certs/docdb-sshtunnel.pem
chmod 400 ~/certs/docdb-sshtunnel.pem
mkdir -p ~/.ssh
copy ./src/odbc-test/config/ssh_config ~/.ssh/config
- name: Cache dependencies Windows 64
id: cache-dependencies-windows-64
uses: actions/cache@v3
with:
path: |
${{ env.VCPKG_ROOT }}
key: ${{ runner.os }}-cache-dependencies-windows-64-v1
- name: Cache DocumentDB JDBC JAR
id: cache-documentdb-jdbc-jar
uses: actions/cache@v3
with:
path: |
cache/jar
key: cache-documentdb-jdbc-jar-${{env.JDBC_DRIVER_VERSION}}
- name: Download DocumentDB JDBC JAR
if: steps.cache-documentdb-jdbc-jar.outputs.cache-hit != 'true'
run: |
mkdir -p cache/jar
cd cache/jar
Invoke-WebRequest https://github.com/aws/amazon-documentdb-jdbc-driver/releases/download/v${{env.JDBC_DRIVER_VERSION}}/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar -o documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar
- name: Install DocumentDB JDBC JAR
run: |
mkdir -p ${{env.ODBC_BIN_PATH}}/libs
cp cache/jar/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar ${{env.ODBC_BIN_PATH}}/libs
- name: Install dependencies Windows
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-VcpkgPackages -Triplet x64-windows
env:
VCPKG_ROOT: ${{env.VCPKG_ROOT}}
- name: configure-and-build-driver
run: |
.\build_win_release64.ps1
env:
OPENSSL_ROOT_DIR: '${{env.VCPKG_ROOT}}/packages/openssl_x64-windows'
- name: "Configure AWS credentials"
if: ${{env.SIGNING_ENABLED == 'true'}}
uses: aws-actions/configure-aws-credentials@v1
with:
role-skip-session-tagging: true
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-2
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
role-external-id: ${{ secrets.AWS_ROLE_EXTERNAL_ID }}
role-duration-seconds: 3600
- name: Sign Executables
if: ${{env.SIGNING_ENABLED == 'true'}}
id: sign-executables-64
shell: pwsh
run: |
. ./scripts/sign_installer.ps1
Install-Jq
Invoke-SignInstaller "${{env.ODBC_BIN_PATH}}" amd64 ${{env.ODBC_DRIVER_VERSION}} ${{ secrets.AWS_UNSIGNED_BUCKET }} ${{ secrets.AWS_SIGNED_BUCKET }} ${{ secrets.AWS_KEY }}
- name: Upload ODBC driver build at push to develop
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
uses: actions/upload-artifact@v3
with:
name: docdb-odbc-driver-amd64-${{env.ODBC_DRIVER_VERSION}}
path: |
${{env.ODBC_BIN_PATH}}/*.dll
${{env.ODBC_BIN_PATH}}/*.msi
${{env.ODBC_BIN_PATH}}/*.exe
${{env.ODBC_BIN_PATH}}/*.pdb
!${{env.ODBC_BIN_PATH}}/images
!${{env.ODBC_BIN_PATH}}/jpackage-resources
!${{env.ODBC_BIN_PATH}}/runtime-image
- name: Upload performance test at push to develop
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
uses: actions/upload-artifact@v3
with:
name: performance-amd64-${{env.ODBC_DRIVER_VERSION}}
path: build/odbc/bin/Release/performance.exe
- name: register-driver
run: |
.\src\odbc\install\install_amd64.cmd ${{env.ODBC_BIN_PATH}}\documentdb.odbc.dll
- name: Setup MongoDB
run: |
./scripts/reinstall_mongodb.ps1
- name: Import test data
run: |
./src/odbc-test/scripts/import_test_data.ps1
- name: run-tests
run: |
Start-Process -NoNewWindow ssh "-f -N -o UserKnownHostsFile=/temp -o StrictHostKeyChecking=no -i ${{env.DOC_DB_PRIV_KEY_FILE}} -L${{env.DOC_DB_LOCAL_PORT}}:${{secrets.DOC_DB_HOST}}:${{env.DOC_DB_REMOTE_PORT}} ${{secrets.DOC_DB_USER}}"
${{env.ODBC_BIN_PATH}}/documentdb-odbc-tests.exe
- name: upload-test-report
if: always()
uses: EnricoMi/publish-unit-test-result-action/[email protected]
with:
check_name: "Windows 2022 (x64) Build Unit Test Results Check"
comment_title: "Windows 2022 (x64) Build Unit Test Results"
files: ./odbc_test_result.xml
- name: upload-test-file
if: always()
uses: actions/upload-artifact@v3
with:
name: odbc-test-results-win64
path: |
./odbc_test_result.xml
./build/odbc/logs/docdb_odbc_*.log
# - name: build-installer
# if: success()
# run: |
# .\scripts\build_installer.ps1 Release x64 .\src $Env:ODBC_BUILD_PATH $Env:AWS_SDK_INSTALL_PATH
# - name: prepare-output
# if: success()
# run: |
# .\scripts\prepare_ci_output.ps1 $Env:ODBC_BIN_PATH $Env:ODBC_LIB_PATH $Env:ODBC_BUILD_PATH
# - name: upload-build
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: windows64-build
# path: ci-output/build
# - name: upload-installer
# if: success()
# uses: actions/upload-artifact@v3
# with:
# name: windows64-installer
# path: ci-output/installer
build-windows64_coverage:
runs-on: windows-2022
needs: trufflehog-git-secrets-scan
steps:
- uses: actions/checkout@v2
- name: Update environment with JDBC_DRIVER_VERSION
shell: pwsh
run: |
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
- name: Get Java distribution
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x64"
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: "Update path for Java"
run: |
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: "Update path for WIX Toolset"
run: |
echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Get latest version of CMake
uses: lukka/get-cmake@latest
- name: add-msbuild-to-path
uses: microsoft/[email protected]
- name: Extract key-pair into file
run: |
mkdir -p ~/certs
echo "${{env.DOC_DB_KEYPAIR}}" > ~/certs/docdb-sshtunnel.pem
chmod 400 ~/certs/docdb-sshtunnel.pem
mkdir -p ~/.ssh
copy ./src/odbc-test/config/ssh_config ~/.ssh/config
- name: setup-opencppcoverage-and-add-to-path
id: setup_opencppcoverage
run: |
choco install OpenCppCoverage -y
echo "C:\Program Files\OpenCppCoverage" >> $env:GITHUB_PATH
- name: Cache dependencies Windows 64
id: cache-dependencies-windows-64
uses: actions/cache@v3
with:
path: |
${{ env.VCPKG_ROOT }}
key: ${{ runner.os }}-cache-dependencies-windows-64-v1
- name: Cache DocumentDB JDBC JAR
id: cache-documentdb-jdbc-jar
uses: actions/cache@v3
with:
path: |
cache/jar
key: cache-documentdb-jdbc-jar-${{env.JDBC_DRIVER_VERSION}}
- name: Download DocumentDB JDBC JAR
if: steps.cache-documentdb-jdbc-jar.outputs.cache-hit != 'true'
run: |
mkdir -p cache/jar
cd cache/jar
Invoke-WebRequest https://github.com/aws/amazon-documentdb-jdbc-driver/releases/download/v${{env.JDBC_DRIVER_VERSION}}/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar -o documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar
- name: Install DocumentDB JDBC JAR
run: |
mkdir -p ${{env.ODBC_BIN_PATH}}/libs
cp cache/jar/documentdb-jdbc-${{env.JDBC_DRIVER_VERSION}}-all.jar ${{env.ODBC_BIN_PATH}}/libs
- name: Install dependencies Windows
shell: pwsh
run: |
. ./scripts/functions_win.ps1
Install-VcpkgPackages -Triplet x64-windows
env:
VCPKG_ROOT: ${{env.VCPKG_ROOT}}
- name: configure-and-build-driver
run: |
.\build_win_debug64.ps1
env:
OPENSSL_ROOT_DIR: '${{env.VCPKG_ROOT}}/packages/openssl_x64-windows'
- name: register-driver
run: |
.\src\odbc\install\install_amd64.cmd ${{env.ODBC_DEBUG_PATH}}\documentdb.odbc.dll
- name: Setup MongoDB
run: |
./scripts/reinstall_mongodb.ps1
- name: Import test data
run: |
./src/odbc-test/scripts/import_test_data.ps1
- name: run-tests
env:
DOCUMENTDB_HOME: "${{github.workspace}}/build/odbc/bin/Debug"
run: |
Start-Process -NoNewWindow ssh "-f -N -o UserKnownHostsFile=/temp -o StrictHostKeyChecking=no -i ${{env.DOC_DB_PRIV_KEY_FILE}} -L${{env.DOC_DB_LOCAL_PORT}}:${{secrets.DOC_DB_HOST}}:${{env.DOC_DB_REMOTE_PORT}} ${{secrets.DOC_DB_USER}}"
opencppcoverage --sources src --export_type cobertura:coverage.cobertura.xml --excluded_modules boost_unit_test_framework --excluded_modules documentdb-odbc-tests --excluded_modules mongoc --excluded_modules mongocxx --excluded_modules bson --excluded_modules bsoncxx --excluded_modules zlib -- ${{env.ODBC_DEBUG_PATH}}/documentdb-odbc-tests.exe
- name: upload-coverage
if: always()
uses: actions/upload-artifact@v3
with:
name: code-coverage
path: coverage.cobertura.xml
comment_PR_coverage:
runs-on: ubuntu-latest
needs: build-windows64_coverage
steps:
- uses: actions/checkout@v3
with:
ref: ''
- name: Retrieve coverage
uses: actions/[email protected]
with:
name: code-coverage
- name: Code Coverage Summary Report
uses: irongut/[email protected]
with:
filename: coverage.cobertura.xml
badge: true
format: markdown
indicators: true
output: both
- name: Code Coverage Badge
uses: irongut/[email protected]
with:
filename: coverage.cobertura.xml
badge: true
format: text
indicators: true
output: both
- name: Extract Code Coverage Badge
run: |
COVERAGE_BADGE=$(head -1 code-coverage-results.txt )
COVERAGE_BADGE="${COVERAGE_BADGE/'Code%20Coverage'/'Windows%20Code%20Coverage'}"
curl $COVERAGE_BADGE > .github/badges/coverage_badge_windows.svg
- name: Commit Coverage Badge
if: github.event_name == 'pull_request'
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_options: '--allow-empty --no-verify'
commit_message: Commit Code Coverage Badge
file_pattern: '*.svg'
skip_fetch: false
skip_checkout: false
skip_dirty_check: false
- name: Add Header for Code Coverage Summary Report
run: |
echo "## Windows 2022 (x64) Debug Build Unit Test Results Check" > coverage-cobertura.md
cat code-coverage-results.md >> coverage-cobertura.md
- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
header: windows
recreate: true
path: coverage-cobertura.md
# - name: upload-coverage
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: code-coverage
# path: coverage
#
# The step below should be uncommented after the codecov is setup
# - name: Upload Report to Codecov
# if: always()
# uses: codecov/[email protected]
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: ./coverage.xml
# fail_ci_if_error: true
build-power-bi-connector:
runs-on: windows-2022
needs: trufflehog-git-secrets-scan
steps:
- uses: actions/checkout@v2
- name: Build Power BI Connector
shell: pwsh
run: |
cd src\power-bi-connector\
.\AmazonDocumentDBConnector.ps1
- name: Upload Power BI Connector
if: always()
uses: actions/upload-artifact@v3
with:
name: AmazonDocumentDBConnector
path: src/power-bi-connector/AmazonDocumentDBConnector.mez