Skip to content

testing dotnet framework #2726

testing dotnet framework

testing dotnet framework #2726

Workflow file for this run

name: DotNet Build and Test
# Triggers the workflow on push or pull request events but only for the master branch
on:
push:
branches: [ master, test_master ]
pull_request:
branches: [ master, test_master ]
workflow_dispatch:
inputs:
logLevel:
default: warning
description: "Log level"
required: true
tags:
description: "Test scenario tags"
required: false
concurrency:
# older builds for the same pull request number or branch should be cancelled
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
# uncomment to run the tests sequentially
#SEQUENTIAL_ENV: SEQUENTIAL_TEST_RUN
jobs:
test-windows:
name: Tests on Windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
dotnet: ['net472', 'net471']
cloud_env: ['AZURE', 'GCP', 'AWS']
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
6.0.x
dotnet-quality: 'ga'
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Setup dotnet-coverage
run: dotnet tool install --global dotnet-coverage --version 17.8.4
- name: Decrypt Parameters
shell: bash
env:
PARAMETER_SECRET: ${{ secrets.PARAMETER_SECRET }}
run: |
gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETER_SECRET" \
./.github/workflows/parameters/parameters_${{ matrix.cloud_env }}.json.gpg > Snowflake.Data.Tests/parameters.json
- name: Build Driver
run: |
cd Snowflake.Data.Tests
dotnet restore
dotnet build -f ${{ matrix.dotnet }}
- name: Run Tests
run: |
cd Snowflake.Data.Tests
echo "printing exiting dlls"
ls "bin\Debug\*"
ls "bin\Debug\${{ matrix.dotnet }}\*"
dotnet-coverage collect "dotnet test --framework ${{ matrix.dotnet }} --no-build -l console;verbosity=normal" --output windows_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml --output-format cobertura --settings coverage.config
env:
snowflake_cloud_env: ${{ matrix.cloud_env }}
net_version: ${{ matrix.dotnet }}
- name: Upload Code Coverage Report
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: Snowflake.Data.Tests\windows_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml
- name: Upload Test Performance Report
uses: actions/upload-artifact@v3
with:
name: tests-performance
path: Snowflake.Data.Tests\windows_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_performance.csv
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
# without the token code cov may fail because of Github limits https://github.com/codecov/codecov-action/issues/557
token: ${{ secrets.CODE_COV_UPLOAD_TOKEN }}
fail_ci_if_error: true
files: Snowflake.Data.Tests\windows_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml
# test-linux:
# name: Tests on Linux
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# dotnet: ['net6.0', 'net8.0']
# cloud_env: ['AZURE', 'GCP', 'AWS']
# steps:
# - uses: actions/checkout@v3
# - name: Setup Dotnet
# uses: actions/setup-dotnet@v4
# with:
# dotnet-version: |
# 6.0.x
# 8.0.x
# dotnet-quality: 'ga'
# - name: Setup Python
# uses: actions/setup-python@v4
# with:
# python-version: '3.x'
# - name: Setup dotnet-coverage
# run: dotnet tool install --global dotnet-coverage --version 17.8.4
# - name: Decrypt Parameters
# shell: bash
# env:
# PARAMETER_SECRET: ${{ secrets.PARAMETER_SECRET }}
# run: |
# gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETER_SECRET" \
# ./.github/workflows/parameters/parameters_${{ matrix.cloud_env }}.json.gpg > Snowflake.Data.Tests/parameters.json
# - name: Build Driver
# run: |
# dotnet restore
# dotnet build
# - name: Run Tests
# run: |
# cd Snowflake.Data.Tests
# dotnet-coverage collect "dotnet test --framework ${{ matrix.dotnet }} --no-build -l console;verbosity=normal" --output linux_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml --output-format cobertura --settings coverage.config
# env:
# snowflake_cloud_env: ${{ matrix.cloud_env }}
# net_version: ${{ matrix.dotnet }}
# - name: Upload Code Coverage Report
# uses: actions/upload-artifact@v3
# with:
# name: code-coverage-report
# path: Snowflake.Data.Tests/linux_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml
# - name: Upload Test Performance Report
# uses: actions/upload-artifact@v3
# with:
# name: tests-performance
# path: Snowflake.Data.Tests/linux_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_performance.csv
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v3
# with:
# # without the token code cov may fail because of Github limits https://github.com/codecov/codecov-action/issues/557
# token: ${{ secrets.CODE_COV_UPLOAD_TOKEN }}
# fail_ci_if_error: true
# files: Snowflake.Data.Tests/linux_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml
#
# test-mac:
# name: Tests on MAC
# runs-on: macos-latest
# strategy:
# fail-fast: false
# matrix:
# dotnet: ['net6.0', 'net8.0']
# cloud_env: ['AZURE', 'GCP', 'AWS']
# steps:
# - uses: actions/checkout@v4
# - name: Setup Dotnet
# uses: actions/setup-dotnet@v4
# with:
# dotnet-version: |
# 6.0.x
# 8.0.x
# dotnet-quality: 'ga'
# - name: Setup Python
# uses: actions/setup-python@v4
# with:
# python-version: '3.x'
# - name: Setup dotnet-coverage
# run: dotnet tool install --global dotnet-coverage --version 17.8.4
# - name: Decrypt Parameters
# shell: bash
# env:
# PARAMETER_SECRET: ${{ secrets.PARAMETER_SECRET }}
# run: |
# gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETER_SECRET" \
# ./.github/workflows/parameters/parameters_${{ matrix.cloud_env }}.json.gpg > Snowflake.Data.Tests/parameters.json
# - name: Build Driver
# run: |
# dotnet restore
# dotnet build
# - name: Run Tests
# run: |
# cd Snowflake.Data.Tests
# dotnet-coverage collect "dotnet test --framework ${{ matrix.dotnet }} --no-build -l console;verbosity=normal" --output macos_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml --output-format cobertura --settings coverage.config
# env:
# snowflake_cloud_env: ${{ matrix.cloud_env }}
# net_version: ${{ matrix.dotnet }}
# - name: Upload Code Coverage Report
# uses: actions/upload-artifact@v3
# with:
# name: code-coverage-report
# path: Snowflake.Data.Tests/macos_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml
# - name: Upload Test Performance Report
# uses: actions/upload-artifact@v3
# with:
# name: tests-performance
# path: Snowflake.Data.Tests/macos_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_performance.csv
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v3
# with:
# # without the token code cov may fail because of Github limits https://github.com/codecov/codecov-action/issues/557
# token: ${{ secrets.CODE_COV_UPLOAD_TOKEN }}
# fail_ci_if_error: true
# files: Snowflake.Data.Tests/macos_${{ matrix.dotnet }}_${{ matrix.cloud_env }}_coverage.xml