From cbe67c993fb143054f47cffda5cab60ed14b72db Mon Sep 17 00:00:00 2001 From: Alex Bozarth Date: Mon, 25 Nov 2024 15:58:01 -0600 Subject: [PATCH] mosquitto Signed-off-by: Alex Bozarth --- .github/workflows/build.yml | 5 +++ .github/workflows/mosquitto.yml | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 .github/workflows/mosquitto.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9632413..174a096 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,6 +42,11 @@ jobs: with: build_main: ${{ github.event.inputs.build_main }} + mosquitto: + uses: ./.github/workflows/mosquitto.yml + with: + build_main: ${{ github.event.inputs.build_main }} + nginx: uses: ./.github/workflows/nginx.yml with: diff --git a/.github/workflows/mosquitto.yml b/.github/workflows/mosquitto.yml new file mode 100644 index 0000000..a4336ab --- /dev/null +++ b/.github/workflows/mosquitto.yml @@ -0,0 +1,60 @@ +name: Build & Test - mosquitto + +on: + push: + branches: [ 'main' ] + paths: ['.github/workflows/mosquitto.yml', 'mosquitto/**'] + pull_request: + branches: [ 'main' ] + paths: ['.github/workflows/mosquitto.yml', 'mosquitto/**'] + 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 Docker image + uses: docker/build-push-action@v6 + with: + load: true + context: mosquitto + platforms: ${{ matrix.platform }} + build-args: | + ${{ (github.event.inputs.build_main == 'true') && env.build-args || null }} + tags: oqs-mosquitto + + - name: Test mosquitto using local docker network + run: | + docker network create --subnet=192.168.0.0/16 mosquitto-test && + docker run --network mosquitto-test --ip 192.168.0.2 -it --rm --name oqs-mosquitto-broker -e "BROKER_IP=192.168.0.2" -e "EXAMPLE=broker-start.sh" -d oqs-mosquitto && + docker run --network mosquitto-test --ip 192.168.0.3 -it --rm --name oqs-mosquitto-subscriber -e "BROKER_IP=192.168.0.2" -e "SUB_IP=192.168.0.3" -e "EXAMPLE=subscriber-start.sh" -d oqs-mosquitto && + docker run --network mosquitto-test --ip 192.168.0.4 -it --rm --name oqs-mosquitto-publisher -e "BROKER_IP=192.168.0.2" -e "PUB_IP=192.168.0.4" -e "EXAMPLE=publisher-start.sh" -d oqs-mosquitto && + sleep 2 && + docker logs oqs-mosquitto-publisher | grep "Client_pub sending PUBLISH" && + docker logs oqs-mosquitto-subscriber | grep "Hello world"