diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..821c19d --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.github \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 40d8f2b..c2e69af 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,17 +12,13 @@ jobs: name: Test with Mosquitto version 1.x runs-on: ubuntu-latest steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Set Mosquitto version + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Set Mosquitto version run: sed -i 's/ARG MOSQUITTO_VERSION=${{ env.DOCKERFILE_MOSQUITTO_VERSION }}/ARG MOSQUITTO_VERSION=${{ env.MOSQUITTO_VERSION_1 }}/' Dockerfile.runtest - - - name: Test + - name: Test run: | docker build -t mosquitto-go-auth.test -f Dockerfile.runtest . docker run --rm mosquitto-go-auth.test ./run-test-in-docker.sh @@ -30,20 +26,13 @@ jobs: name: Test with Mosquitto version 2.x runs-on: ubuntu-latest steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set Mosquitto version + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Set Mosquitto version run: sed -i 's/ARG MOSQUITTO_VERSION=${{ env.DOCKERFILE_MOSQUITTO_VERSION }}/ARG MOSQUITTO_VERSION=${{ env.MOSQUITTO_VERSION_2 }}/' Dockerfile.runtest - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Test + - name: Test run: | docker build -t mosquitto-go-auth.test -f Dockerfile.runtest . docker run --rm mosquitto-go-auth.test ./run-test-in-docker.sh - - - diff --git a/Dockerfile.runtest b/Dockerfile.runtest index 09db200..f1c310d 100644 --- a/Dockerfile.runtest +++ b/Dockerfile.runtest @@ -18,7 +18,7 @@ ENV MOSQUITTO_GO_AUTH_TEST_RUNNING_IN_A_CONTAINER=true WORKDIR /app #Get mosquitto build dependencies. -RUN apt-get update && apt-get install -y libc-ares2 libc-ares-dev cmake libssl-dev uuid uuid-dev wget build-essential git libcjson-dev +RUN apt-get update && apt-get install -y libc-ares2 libc-ares-dev cmake libssl-dev uuid uuid-dev wget build-essential git libcjson-dev gnupg lsb-release # Get libwebsocket. Debian's libwebsockets is too old for Mosquitto version > 2.x so it gets built from source. RUN set -ex; \ @@ -67,16 +67,22 @@ RUN export PATH=$PATH:/usr/local/go/bin && export CGO_CFLAGS="-I/usr/local/inclu ## Everything above, is the same as Dockerfile -RUN apt-get update && apt-get install --no-install-recommends -y mariadb-server postgresql redis-server sudo +RUN apt-get update && apt-get install --no-install-recommends -y mariadb-server postgresql sudo -RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - && \ - echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" > /etc/apt/sources.list.d/mongodb-org-4.4.list && \ +RUN wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor && \ + echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \ apt-get update && \ -# starting with MongoDB 4.3, the postinst for server includes "systemctl daemon-reload" (and we don't have "systemctl") +# starting with MongoDB 7.0, the postinst for server includes "systemctl daemon-reload" (and we don't have "systemctl") ln -s /bin/true /usr/bin/systemctl && \ apt-get install -y mongodb-org && \ rm -f /usr/bin/systemctl +#Install redis 6.2 +RUN wget -qO - https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg && \ + echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list && \ + apt-get update && \ + apt-get install -y redis-tools=6:6.2.* redis-server=6:6.2.* + # Install CFSSL to generate test certificates required for tests RUN export PATH=$PATH:/usr/local/go/bin && go install github.com/cloudflare/cfssl/cmd/cfssl@v1.6.2 && cp ~/go/bin/cfssl /usr/local/bin RUN export PATH=$PATH:/usr/local/go/bin && go install github.com/cloudflare/cfssl/cmd/cfssljson@v1.6.2 && cp ~/go/bin/cfssljson /usr/local/bin