Implement a generic test ioctl for kernel mode tests (#5650) #3270
This file contains hidden or 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: Alpine Linux Packages | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - release/* | |
| pull_request: | |
| branches: | |
| - main | |
| - release/* | |
| concurrency: | |
| # Cancel any workflow currently in progress for the same PR. | |
| # Allow running concurrently with any other commits. | |
| group: package-alpine-linux-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| permissions: read-all | |
| jobs: | |
| build-alpine-packages: | |
| name: Generate Alpine Packages | |
| needs: [] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| vec: [ | |
| { friendlyName: "Alpine-3.20-x64", config: "Release", arch: "x64", tls: "quictls", image: "mcr.microsoft.com/dotnet/sdk:8.0-alpine3.20-amd64" }, | |
| ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 | |
| - name: Generate APKBUILD | |
| shell: pwsh | |
| run: | | |
| ./scripts/generate-alpine-packaging-file.ps1 -ArchiveUri https://github.com/${{ github.repository }}/archive/${{ github.sha }}.tar.gz -SHA ${{ github.sha }} | |
| mkdir -p packages | |
| - name: Docker Run and Build Package | |
| run: | | |
| docker run \ | |
| -v $(pwd)/packages:/artifacts \ | |
| -v $(pwd):/msquic \ | |
| ${{ matrix.vec.image }} /msquic/scripts/package-build.sh | |
| - name: Upload Package | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 | |
| with: | |
| name: ${{ matrix.vec.friendlyName }}-package | |
| path: packages/*.apk | |
| test-packages-on-docker: | |
| name: Test Linux Packages | |
| needs: [build-alpine-packages] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| vec: [ | |
| { friendlyName: "Alpine-3.20-x64", config: "Release", arch: "x64", tls: "quictls", image: "mcr.microsoft.com/dotnet/runtime:9.0-alpine3.20-amd64", dotnetVersion: "9.0" }, | |
| ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| - name: Download Package | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 | |
| with: | |
| name: ${{ matrix.vec.friendlyName }}-package | |
| path: artifacts | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 | |
| - name: Set up .NET 9.0 | |
| uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 | |
| with: | |
| dotnet-version: ${{ matrix.vec.dotnetVersion }} | |
| - name: Build .NET QUIC Test Project (self-contained) | |
| run: | | |
| # Map arch to musl runtime identifier | |
| case "${{ matrix.vec.arch }}" in | |
| x64) RID="linux-musl-x64" ;; | |
| arm64) RID="linux-musl-arm64" ;; | |
| esac | |
| pushd src/cs/QuicSimpleTest && dotnet publish QuicHello.net${{ matrix.vec.dotnetVersion }}.csproj -r $RID -c ${{ matrix.vec.config }} -o artifacts/net${{ matrix.vec.dotnetVersion }} -f net${{ matrix.vec.dotnetVersion }} --self-contained true /p:PublishSingleFile=true && popd | |
| - name: Docker Run | |
| run: | | |
| docker run -v $(pwd):/main ${{ matrix.vec.image }} /main/scripts/docker-script.sh ${{ matrix.vec.arch }} ${{ matrix.vec.config }} ${{ matrix.vec.tls }} ${{ matrix.vec.dotnetVersion }} |