From 0dc2cf1d2ee31b2f2d7b0190eb1097a8bda933a2 Mon Sep 17 00:00:00 2001 From: Alex Bozarth Date: Mon, 25 Nov 2024 15:42:11 -0600 Subject: [PATCH] ngtcp2 Signed-off-by: Alex Bozarth --- .github/workflows/build.yml | 5 +++ .github/workflows/ngtcp2.yml | 71 ++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 .github/workflows/ngtcp2.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 174a096..e3af851 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,6 +52,11 @@ jobs: with: build_main: ${{ github.event.inputs.build_main }} + ngtcp2: + uses: ./.github/workflows/ngtcp2.yml + with: + build_main: ${{ github.event.inputs.build_main }} + openssh: uses: ./.github/workflows/openssh.yml with: diff --git a/.github/workflows/ngtcp2.yml b/.github/workflows/ngtcp2.yml new file mode 100644 index 0000000..65f8c49 --- /dev/null +++ b/.github/workflows/ngtcp2.yml @@ -0,0 +1,71 @@ +name: Build & Test - ngtcp2 + +on: + push: + branches: [ 'main' ] + paths: ['.github/workflows/ngtcp2.yml', 'ngtcp2/**'] + pull_request: + branches: [ 'main' ] + paths: ['.github/workflows/ngtcp2.yml', 'ngtcp2/**'] + workflow_call: + inputs: + build_main: + description: "Build using liboqs and oqsprovider main branches" + required: false + default: false + type: boolean + +env: + build-args: | + LIBOQS_TAG=main + OQSPROVIDER_TAG=main + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm64 + steps: + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v3 + - uses: docker/setup-buildx-action@v3 + - uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build the server Docker image + uses: docker/build-push-action@v6 + with: + load: true + context: ngtcp2 + file: ngtcp2/Dockerfile-server + platforms: ${{ matrix.platform }} + build-args: | + MAKE_DEFINES=-j4 + ${{ (github.event.inputs.build_main == 'true') && env.build-args || null }} + tags: oqs-ngtcp2-server + + - name: Build the client Docker image + uses: docker/build-push-action@v6 + with: + load: true + context: ngtcp2 + file: ngtcp2/Dockerfile-client + platforms: ${{ matrix.platform }} + build-args: | + MAKE_DEFINES=-j4 + ${{ (github.event.inputs.build_main == 'true') && env.build-args || null }} + tags: oqs-ngtcp2-client + + - name: Test ngtcp2 using local docker network + run: | + docker network create ngtcp2-test && + docker run --network ngtcp2-test --detach --name oqs-ngtcp2server oqs-ngtcp2-server && + docker run --network ngtcp2-test --name oqs-ngtcp2client oqs-ngtcp2-client sh -c 'qtlsclient --exit-on-first-stream-close --groups kyber512 oqs-ngtcp2server 6000' && + docker logs oqs-ngtcp2client 2>&1 | grep "QUIC handshake has been confirmed"