ci #199
Workflow file for this run
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: ci | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
merge_group: | |
workflow_dispatch: | |
env: | |
NUGET_PACKAGES: ${{ github.workspace }}/packages | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
jobs: | |
build: | |
uses: ./.github/workflows/build.yml | |
build-container: | |
uses: ./.github/workflows/build-container.yml | |
build-nuget-packages: | |
needs: [ build, build-container ] | |
uses: ./.github/workflows/build-nuget-packages.yml | |
test-build-managed: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
test-tfm: [ net7.0, net6.0, net462 ] | |
machine: [ windows-2022, ubuntu-20.04, macos-11 ] | |
exclude: | |
- test-tfm: net462 | |
machine: macos-11 | |
- test-tfm: net462 | |
machine: ubuntu-20.04 | |
include: | |
- machine: windows-2022 | |
containers: none | |
- machine: ubuntu-20.04 | |
containers: linux | |
- machine: macos-11 | |
containers: none | |
runs-on: ${{ matrix.machine }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # fetching all, needed to correctly calculate version | |
- uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.416 | |
7.0.403 | |
- name: Check for NuGet packages cache | |
uses: actions/[email protected] | |
id: nuget-cache | |
with: | |
key: ${{ hashFiles('**/Directory.packages.props', './build/LibraryVersions.g.cs', '**/packages.config' ) }} | |
path: ${{ env.NUGET_PACKAGES }} | |
- name: Download Artifacts from build job | |
uses: actions/[email protected] | |
with: | |
name: bin-${{ matrix.machine }} | |
path: bin/tracer-home | |
- name: Install SQL Server (localdb) | |
uses: potatoqualitee/[email protected] | |
if: ${{ runner.os == 'Windows' }} | |
with: | |
install: localdb | |
- run: ./build.cmd --skip NativeTests --target TestWorkflow --test-target-framework ${{ matrix.test-tfm }} --containers ${{ matrix.containers }} | |
- name: Upload test logs | |
uses: actions/[email protected] | |
if: always() | |
with: | |
name: test-logs-${{ matrix.machine }}-${{ matrix.test-tfm }}-containers-${{ matrix.containers }} | |
path: test-artifacts/ | |
- name: Delete SQL Server MSI | |
if: ${{ runner.os == 'Windows' }} | |
shell: bash | |
run: | | |
rm SqlLocalDB.msi | |
test-build-native: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
machine: [ windows-2022 ] | |
runs-on: ${{ matrix.machine }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # fetching all, needed to correctly calculate version | |
- uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.416 | |
7.0.403 | |
- name: Check for NuGet packages cache | |
uses: actions/[email protected] | |
id: nuget-cache | |
with: | |
key: ${{ hashFiles('**/Directory.packages.props', './build/LibraryVersions.g.cs', '**/packages.config' ) }} | |
path: ${{ env.NUGET_PACKAGES }} | |
- name: Download Artifacts from build job | |
uses: actions/[email protected] | |
with: | |
name: bin-${{ matrix.machine }} | |
path: bin/tracer-home | |
- run: ./build.cmd NativeTests | |
test-build-windows-container-tests: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- machine: windows-2022 | |
containers: windows-only | |
runs-on: ${{ matrix.machine }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # fetching all, needed to correctly calculate version | |
- uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.416 | |
7.0.403 | |
- name: Check for NuGet packages cache | |
uses: actions/[email protected] | |
id: nuget-cache | |
with: | |
key: ${{ hashFiles('**/Directory.packages.props', './build/LibraryVersions.g.cs', '**/packages.config' ) }} | |
path: ${{ env.NUGET_PACKAGES }} | |
- name: Download Artifacts from build job | |
uses: actions/[email protected] | |
with: | |
name: bin-${{ matrix.machine }} | |
path: bin/tracer-home | |
- name: Build artifacts required for the test (no native tests) | |
run: ./build.cmd --skip RunManagedTests --target ManagedTests --containers ${{ matrix.containers }} | |
- name: Run the integration tests | |
run: ./build.cmd --target RunManagedIntegrationTests --containers ${{ matrix.containers }} | |
- name: Upload test logs | |
uses: actions/[email protected] | |
if: always() | |
with: | |
name: test-logs-${{ matrix.machine }}-containers-${{ matrix.containers }} | |
path: test-artifacts/ | |
test-build-container: | |
needs: build-container | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- base-image: alpine | |
build-source: alpine | |
os-type: linux-musl | |
- base-image: centos | |
build-source: centos | |
os-type: linux-glibc | |
- base-image: debian | |
build-source: centos | |
os-type: linux-glibc | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # fetching all, needed to correctly calculate version | |
- name: Download Artifacts from build job | |
uses: actions/[email protected] | |
with: | |
name: bin-${{ matrix.build-source }} | |
path: bin/tracer-home | |
- name: Build in Docker container | |
run: | | |
set -e | |
docker build -t mybuildimage -f "./docker/${{ matrix.base-image }}.dockerfile" ./docker | |
docker run -e OS_TYPE=${{ matrix.os-type }} --rm --mount type=bind,source="${GITHUB_WORKSPACE}",target=/project mybuildimage \ | |
/bin/sh -c 'git config --global --add safe.directory /project && ./build.sh TestWorkflow --containers none' | |
test-nuget-packages: | |
needs: build-nuget-packages | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- machine: ubuntu-20.04 | |
- machine: macos-11 | |
- machine: windows-2022 | |
runs-on: ${{ matrix.machine }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # fetching all, needed to correctly calculate version | |
- uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.416 | |
7.0.403 | |
- name: Check for NuGet packages cache | |
uses: actions/[email protected] | |
id: nuget-cache | |
with: | |
key: ${{ hashFiles('**/Directory.packages.props', './build/LibraryVersions.g.cs', '**/packages.config' ) }} | |
path: ${{ env.NUGET_PACKAGES }} | |
- name: Download NuGet Artifacts from build-nuget-packages job | |
uses: actions/[email protected] | |
with: | |
name: bin-nuget-packages | |
path: bin/nuget-artifacts/ | |
- name: Test NuGet Packages | |
run: ./build.cmd TestNuGetPackages |