Skip to content

Merge branch 'open-telemetry:main' into main #659

Merge branch 'open-telemetry:main' into main

Merge branch 'open-telemetry:main' into main #659

Workflow file for this run

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-container:
uses: ./.github/workflows/build-container.yml
build-centos-native:
uses: ./.github/workflows/build-centos-native-container.yml
build:
needs: build-centos-native
uses: ./.github/workflows/build.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: [ net8.0, net7.0, net6.0, net462 ]
machine: [ windows-2022, ubuntu-20.04, macos-11, actuated-arm64-4cpu-8gb ]
exclude:
- test-tfm: net462
machine: macos-11
- test-tfm: net462
machine: ubuntu-20.04
- test-tfm: net462
machine: actuated-arm64-4cpu-8gb
include:
- machine: windows-2022
containers: none
- machine: ubuntu-20.04
containers: linux
- machine: macos-11
containers: none
- machine: actuated-arm64-4cpu-8gb
containers: linux
runs-on: ${{ matrix.machine }}
steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0 # fetching all, needed to correctly calculate version
- name: Setup ARM64 Environment Variables
if: ${{ matrix.machine == 'actuated-arm64-4cpu-8gb' }}
run: |
echo "DOTNET_INSTALL_DIR=~/.dotnet" >> $GITHUB_ENV
- name: Setup .NET
uses: actions/[email protected]
with:
dotnet-version: |
6.0.420
7.0.407
8.0.203
- 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)
if: ${{ runner.os == 'Windows' }}
uses: potatoqualitee/[email protected]
with:
install: localdb
- name: Setup ARM64 Machine
if: ${{ matrix.machine == 'actuated-arm64-4cpu-8gb' }}
run: |
sudo apt-get update && \
sudo apt-get install -y \
cmake \
clang \
make
- name: Run TestWorkflow
run: ./build.cmd --skip NativeTests --target TestWorkflow --test-target-framework ${{ matrix.test-tfm }} --containers ${{ matrix.containers }}
- name: Upload test logs
if: always()
uses: actions/[email protected]
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:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0 # fetching all, needed to correctly calculate version
- name: Setup .NET
uses: actions/[email protected]
with:
dotnet-version: |
6.0.420
7.0.407
8.0.203
- 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: Run NativeTests
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:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0 # fetching all, needed to correctly calculate version
- name: Setup .NET
uses: actions/[email protected]
with:
dotnet-version: |
6.0.420
7.0.407
8.0.203
- 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
if: always()
uses: actions/[email protected]
with:
name: test-logs-${{ matrix.machine }}-containers-${{ matrix.containers }}
path: test-artifacts/
test-build-container:
needs: [build, build-container]
strategy:
fail-fast: false
matrix:
include:
- machine: ubuntu-20.04
base-image: alpine
build-source: alpine-x64
os-type: linux-musl
- machine: ubuntu-20.04
base-image: centos
build-source: ubuntu-20.04
os-type: linux-glibc
- machine: ubuntu-20.04
base-image: debian
build-source: ubuntu-20.04
os-type: linux-glibc
- machine: actuated-arm64-4cpu-8gb
base-image: alpine
build-source: alpine-arm64
os-type: linux-musl
- machine: actuated-arm64-4cpu-8gb
base-image: debian-arm64
build-source: actuated-arm64-4cpu-8gb
os-type: linux-glibc
runs-on: ${{ matrix.machine }}
timeout-minutes: 60
steps:
- name: Checkout
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
- machine: actuated-arm64-4cpu-8gb
runs-on: ${{ matrix.machine }}
steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0 # fetching all, needed to correctly calculate version
- name: Setup ARM64 Environment Variables
if: ${{ matrix.machine == 'actuated-arm64-4cpu-8gb' }}
run: |
echo "DOTNET_INSTALL_DIR=~/.dotnet" >> $GITHUB_ENV
- name: Setup .NET
uses: actions/[email protected]
with:
dotnet-version: |
6.0.420
7.0.407
8.0.203
- 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
test-jobs:
runs-on: ubuntu-20.04
needs:
- test-build-managed
- test-build-native
- test-build-container
- test-nuget-packages
- test-build-windows-container-tests
steps:
- name: Test if test jobs passed
run: |
echo ${{ needs.test-build-managed.result }}
test ${{ needs.test-build-managed.result }} == "success"
echo ${{ needs.test-build-native.result }}
test ${{ needs.test-build-native.result }} == "success"
echo ${{ needs.test-build-container.result }}
test ${{ needs.test-build-container.result }} == "success"
echo ${{ needs.test-nuget-packages.result }}
test ${{ needs.test-nuget-packages.result }} == "success"
echo ${{ needs.test-build-windows-container-tests.result }}
test ${{ needs.test-build-windows-container-tests.result }} == "success"