зеркало из https://github.com/microsoft/msquic.git
91 строка
4.0 KiB
YAML
91 строка
4.0 KiB
YAML
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: "openssl3", image: "mcr.microsoft.com/dotnet/sdk:8.0-alpine3.20-amd64" },
|
|
{ friendlyName: "Alpine-3.20-ARM64", config: "Release", arch: "arm64", tls: "openssl3", image: "mcr.microsoft.com/dotnet/sdk:8.0-alpine3.20-arm64v8" },
|
|
# .NET is not working properly for ARM32 Alpine with QEMU, so keep it disabled for now.
|
|
# { friendlyName: "Alpine-3.20-ARM32", config: "Release", arch: "arm", tls: "openssl3", image: "mcr.microsoft.com/dotnet/sdk:8.0-alpine3.20-arm32v7" },
|
|
]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
|
|
- 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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
|
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: "openssl3", image: "mcr.microsoft.com/dotnet/runtime:9.0-alpine3.20-amd64", dotnetVersion: "9.0" },
|
|
{ friendlyName: "Alpine-3.20-ARM64", config: "Release", arch: "arm64", tls: "openssl3", image: "mcr.microsoft.com/dotnet/runtime:9.0-alpine3.20-arm64v8", dotnetVersion: "9.0" },
|
|
# .NET is not working properly for ARM32 Alpine with QEMU, so keep it disabled for now.
|
|
# { friendlyName: "Alpine-3.20-ARM32", config: "Release", arch: "arm", tls: "openssl3", image: "mcr.microsoft.com/dotnet/runtime:9.0-alpine3.20-arm32v7", dotnetVersion: "9.0" },
|
|
]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
- name: Download Package
|
|
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16
|
|
with:
|
|
name: ${{ matrix.vec.friendlyName }}-package
|
|
path: artifacts
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
|
|
- name: Set up .NET 9.0
|
|
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25
|
|
with:
|
|
dotnet-version: ${{ matrix.vec.dotnetVersion }}
|
|
- name: Build .NET QUIC Test Project
|
|
run: |
|
|
pushd src/cs/QuicSimpleTest && dotnet build QuicHello.net${{ matrix.vec.dotnetVersion }}.csproj -a ${{ matrix.vec.arch }} -c ${{ matrix.vec.config }} -o artifacts/net${{ matrix.vec.dotnetVersion }} -f net${{ matrix.vec.dotnetVersion }} && 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 }}
|