Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows #1444
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: 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 | |