diff --git a/.editorconfig b/.editorconfig index 7f9f55d..4f5c931 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,3 +9,6 @@ indent_size = 2 [*.py] indent_size = 4 + +[VERSION] +insert_final_newline = false diff --git a/.ecrc b/.editorconfig-checker.json similarity index 67% rename from .ecrc rename to .editorconfig-checker.json index f0c91f7..d36f060 100644 --- a/.ecrc +++ b/.editorconfig-checker.json @@ -2,17 +2,12 @@ "Verbose": false, "Debug": false, "IgnoreDefaults": false, - "SpacesAftertabs": false, + "SpacesAfterTabs": false, "NoColor": false, - "Exclude": [ - "LICENSE", - "\\.initializers", - "\\.vscode" - ], + "Exclude": ["LICENSE", "\\.initializers", "\\.vscode"], "AllowedContentTypes": [], "PassedFiles": [], "Disable": { - // set these options to true to disable specific checks "EndOfLine": false, "Indentation": false, "InsertFinalNewline": false, diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index f0db36e..c4f22d6 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -41,7 +41,7 @@ jobs: VALIDATE_GITLEAKS: false VALIDATE_JSCPD: false FILTER_REGEX_EXCLUDE: (.*/)?(LICENSE|configuration/.*) - EDITORCONFIG_FILE_NAME: .ecrc + EDITORCONFIG_FILE_NAME: .editorconfig-checker.json DOCKERFILE_HADOLINT_FILE_NAME: .hadolint.yaml MARKDOWN_CONFIG_FILE: .markdown-lint.yml PYTHON_BLACK_CONFIG_FILE: pyproject.toml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 347874e..71b718c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,11 +13,13 @@ jobs: build: strategy: matrix: - build_cmd: - - ./build-latest.sh - - PRERELEASE=true ./build-latest.sh - - ./build.sh feature - - ./build.sh main + build: + - { "cmd": "./build-latest.sh", "branch": "release" } + - { "cmd": "./build.sh main", "branch": "release" } + # Build pre release images from our develop branch + # This is used to test the latest changes before they are merged into the main branch + - { "cmd": "PRERELEASE=true ./build-latest.sh", "branch": "develop" } + - { "cmd": "./build.sh feature", "branch": "develop" } platform: - linux/amd64,linux/arm64 fail-fast: false @@ -31,15 +33,17 @@ jobs: - id: source-checkout name: Checkout uses: actions/checkout@v4 + with: + ref: ${{ matrix.build.branch }} - id: set-netbox-docker-version name: Get Version of NetBox Docker run: echo "version=$(cat VERSION)" >>"$GITHUB_OUTPUT" shell: bash - id: check-build-needed - name: Check if the build is needed for '${{ matrix.build_cmd }}' + name: Check if the build is needed for '${{ matrix.build.cmd }}' env: CHECK_ONLY: "true" - run: ${{ matrix.build_cmd }} + run: ${{ matrix.build.cmd }} # docker.io - id: docker-io-login name: Login to docker.io @@ -77,7 +81,7 @@ jobs: if: steps.check-build-needed.outputs.skipped != 'true' - id: build-and-push name: Push the image - run: ${{ matrix.build_cmd }} --push + run: ${{ matrix.build.cmd }} --push if: steps.check-build-needed.outputs.skipped != 'true' env: BUILDX_PLATFORM: ${{ matrix.platform }} diff --git a/Dockerfile b/Dockerfile index e627044..ffb3682 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG FROM FROM ${FROM} AS builder -COPY --from=ghcr.io/astral-sh/uv:0.5 /uv /usr/local/bin/ +COPY --from=ghcr.io/astral-sh/uv:0.7 /uv /usr/local/bin/ RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get update -qq \ && apt-get upgrade \ @@ -33,6 +33,8 @@ RUN \ # we have potential version conflicts and the build will fail. # That's why we just replace it in the original requirements.txt. sed -i -e 's/social-auth-core/social-auth-core\[all\]/g' /requirements.txt && \ + # The same is true for 'django-storages' + sed -i -e 's/django-storages/django-storages\[azure,boto3,dropbox,google,libcloud,sftp\]/g' /requirements.txt && \ /usr/local/bin/uv pip install \ -r /requirements.txt \ -r /requirements-container.txt @@ -44,6 +46,8 @@ RUN \ ARG FROM FROM ${FROM} AS main +COPY docker/unit.list /etc/apt/sources.list.d/unit.list +ADD --chmod=444 --chown=0:0 https://unit.nginx.org/keys/nginx-keyring.gpg /usr/share/keyrings/nginx-keyring.gpg RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get update -qq \ && apt-get upgrade \ @@ -60,15 +64,8 @@ RUN export DEBIAN_FRONTEND=noninteractive \ openssl \ python3 \ tini \ - && curl --silent --output /usr/share/keyrings/nginx-keyring.gpg \ - https://unit.nginx.org/keys/nginx-keyring.gpg \ - && echo "deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ noble unit" \ - > /etc/apt/sources.list.d/unit.list \ - && apt-get update -qq \ - && apt-get install \ - --yes -qq --no-install-recommends \ - unit=1.34.1-1~noble \ - unit-python3.12=1.34.1-1~noble \ + unit-python3.12=1.34.2-1~noble \ + unit=1.34.2-1~noble \ && rm -rf /var/lib/apt/lists/* # Copy the modified 'requirements*.txt' files, to have the files actually used during installation diff --git a/VERSION b/VERSION index e4604e3..0fa4ae4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.2.1 +3.3.0 \ No newline at end of file diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 8e89790..bbc139c 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -49,7 +49,7 @@ services: retries: 5 redis: &redis - image: docker.io/valkey/valkey:8.0-alpine + image: docker.io/valkey/valkey:8.1-alpine command: - sh - -c # this is to evaluate the $REDIS_PASSWORD from the env diff --git a/docker-compose.yml b/docker-compose.yml index 7ac5274..3ba2fd4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: netbox: &netbox - image: docker.io/netboxcommunity/netbox:${VERSION-v4.2-3.2.1} + image: docker.io/netboxcommunity/netbox:${VERSION-v4.3-3.3.0} depends_on: - postgres - redis @@ -59,7 +59,7 @@ services: # redis redis: - image: docker.io/valkey/valkey:8.0-alpine + image: docker.io/valkey/valkey:8.1-alpine command: - sh - -c # this is to evaluate the $REDIS_PASSWORD from the env @@ -74,7 +74,7 @@ services: volumes: - netbox-redis-data:/data redis-cache: - image: docker.io/valkey/valkey:8.0-alpine + image: docker.io/valkey/valkey:8.1-alpine command: - sh - -c # this is to evaluate the $REDIS_PASSWORD from the env diff --git a/docker/unit.list b/docker/unit.list new file mode 100644 index 0000000..6193723 --- /dev/null +++ b/docker/unit.list @@ -0,0 +1 @@ +deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] http://packages.nginx.org/unit/ubuntu/ noble unit diff --git a/requirements-container.txt b/requirements-container.txt index e1c9d65..b1a8304 100644 --- a/requirements-container.txt +++ b/requirements-container.txt @@ -1,6 +1,5 @@ django-auth-ldap==5.1.0 -django-storages[azure,boto3,dropbox,google,libcloud,sftp]==1.14.6 -dulwich==0.22.7 +dulwich==0.22.8 python3-saml==1.16.0 --no-binary lxml --no-binary xmlsec diff --git a/test-configuration/test_config.py b/test-configuration/test_config.py index 884defd..308d437 100644 --- a/test-configuration/test_config.py +++ b/test-configuration/test_config.py @@ -3,4 +3,10 @@ LOGGING = { 'disable_existing_loggers': True } +PLUGINS = [ + 'netbox.tests.dummy_plugin', +] + +ALLOW_TOKEN_RETRIEVAL = True + DEFAULT_PERMISSIONS = {}