From f7e290deff0280e808399c6f8b6c1ac4e9805511 Mon Sep 17 00:00:00 2001 From: ScriptAutomate Date: Tue, 5 Sep 2023 16:46:07 -0500 Subject: [PATCH] Add support for Debian 12 --- .github/workflows/ci.yml | 128 +++++++++++++++++ .github/workflows/nightly.yml | 136 ++++++++++++++++++ .github/workflows/release.yml | 36 +++++ .github/workflows/scheduled.yml | 128 +++++++++++++++++ .github/workflows/staging.yml | 134 +++++++++++++++++ .../templates/build-deb-repo.yml.jinja | 2 + .../test-package-downloads-action.yml | 6 + changelog/64223.added.md | 1 + cicd/golden-images.json | 20 +++ tests/pytests/unit/grains/test_core.py | 30 ++++ tools/pkg/repo/create.py | 7 +- tools/pre_commit.py | 6 + 12 files changed, 633 insertions(+), 1 deletion(-) create mode 100644 changelog/64223.added.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64c9f92d9a9..c43fb31f71c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -967,6 +967,40 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + debian-12-ci-deps: + name: Debian 12 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + + debian-12-arm64-ci-deps: + name: Debian 12 Arm64 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + fedora-37-ci-deps: name: Fedora 37 Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1325,6 +1359,50 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + debian-12-pkg-tests: + name: Debian 12 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} + skip-junit-reports: ${{ github.event_name == 'pull_request' }} + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + + debian-12-arm64-pkg-tests: + name: Debian 12 Arm64 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} + skip-junit-reports: ${{ github.event_name == 'pull_request' }} + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + photonos-3-pkg-tests: name: Photon OS 3 Package Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1913,6 +1991,46 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} + debian-12: + name: Debian 12 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} + skip-junit-reports: ${{ github.event_name == 'pull_request' }} + + debian-12-arm64: + name: Debian 12 Arm64 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} + skip-junit-reports: ${{ github.event_name == 'pull_request' }} + fedora-37: name: Fedora 37 Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -2139,6 +2257,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -2165,6 +2285,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -2294,6 +2416,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -2320,6 +2444,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -2337,6 +2463,8 @@ jobs: - debian-10-pkg-tests - debian-11-pkg-tests - debian-11-arm64-pkg-tests + - debian-12-pkg-tests + - debian-12-arm64-pkg-tests - photonos-3-pkg-tests - photonos-4-pkg-tests - photonos-4-arm64-pkg-tests diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 3a66c846bd4..1fb508551ca 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1028,6 +1028,40 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + debian-12-ci-deps: + name: Debian 12 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + + debian-12-arm64-ci-deps: + name: Debian 12 Arm64 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + fedora-37-ci-deps: name: Fedora 37 Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1386,6 +1420,50 @@ jobs: skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + debian-12-pkg-tests: + name: Debian 12 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + + debian-12-arm64-pkg-tests: + name: Debian 12 Arm64 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + photonos-3-pkg-tests: name: Photon OS 3 Package Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1974,6 +2052,46 @@ jobs: skip-code-coverage: false skip-junit-reports: false + debian-12: + name: Debian 12 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + + debian-12-arm64: + name: Debian 12 Arm64 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + fedora-37: name: Fedora 37 Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -2200,6 +2318,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -2226,6 +2346,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -2441,6 +2563,14 @@ jobs: distro: debian version: "11" arch: aarch64 + - pkg-type: deb + distro: debian + version: "12" + arch: x86_64 + - pkg-type: deb + distro: debian + version: "12" + arch: aarch64 - pkg-type: deb distro: ubuntu version: "20.04" @@ -3030,6 +3160,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -3056,6 +3188,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -3134,6 +3268,8 @@ jobs: - debian-10-pkg-tests - debian-11-pkg-tests - debian-11-arm64-pkg-tests + - debian-12-pkg-tests + - debian-12-arm64-pkg-tests - photonos-3-pkg-tests - photonos-4-pkg-tests - photonos-4-arm64-pkg-tests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7a0b40d8e4b..6810dc17199 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -482,6 +482,38 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + debian-12-ci-deps: + name: Debian 12 Deps + needs: + - prepare-workflow + - download-onedir-artifact + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + + debian-12-arm64-ci-deps: + name: Debian 12 Arm64 Deps + needs: + - prepare-workflow + - download-onedir-artifact + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + fedora-37-ci-deps: name: Fedora 37 Deps needs: @@ -756,6 +788,8 @@ jobs: - debian-10-ci-deps - debian-11-arm64-ci-deps - debian-11-ci-deps + - debian-12-arm64-ci-deps + - debian-12-ci-deps - fedora-37-arm64-ci-deps - fedora-37-ci-deps - fedora-38-arm64-ci-deps @@ -976,6 +1010,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 2cd24d6ee33..756a07df6ad 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -1001,6 +1001,40 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + debian-12-ci-deps: + name: Debian 12 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + + debian-12-arm64-ci-deps: + name: Debian 12 Arm64 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + fedora-37-ci-deps: name: Fedora 37 Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1359,6 +1393,50 @@ jobs: skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + debian-12-pkg-tests: + name: Debian 12 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + + debian-12-arm64-pkg-tests: + name: Debian 12 Arm64 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + photonos-3-pkg-tests: name: Photon OS 3 Package Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1947,6 +2025,46 @@ jobs: skip-code-coverage: false skip-junit-reports: false + debian-12: + name: Debian 12 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + + debian-12-arm64: + name: Debian 12 Arm64 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: false + skip-junit-reports: false + fedora-37: name: Fedora 37 Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -2173,6 +2291,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -2199,6 +2319,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -2330,6 +2452,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -2356,6 +2480,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -2373,6 +2499,8 @@ jobs: - debian-10-pkg-tests - debian-11-pkg-tests - debian-11-arm64-pkg-tests + - debian-12-pkg-tests + - debian-12-arm64-pkg-tests - photonos-3-pkg-tests - photonos-4-pkg-tests - photonos-4-arm64-pkg-tests diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 0da203729de..378aad8bd21 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -1023,6 +1023,40 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + debian-12-ci-deps: + name: Debian 12 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + + debian-12-arm64-ci-deps: + name: Debian 12 Arm64 Deps + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-salt-onedir-linux + uses: ./.github/workflows/build-deps-ci-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + fedora-37-ci-deps: name: Fedora 37 Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1381,6 +1415,50 @@ jobs: skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + debian-12-pkg-tests: + name: Debian 12 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: true + skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + + debian-12-arm64-pkg-tests: + name: Debian 12 Arm64 Package Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - build-deb-pkgs-onedir + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-packages-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + pkg-type: deb + nox-version: 2022.8.7 + python-version: "3.10" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: true + skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + photonos-3-pkg-tests: name: Photon OS 3 Package Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -1969,6 +2047,46 @@ jobs: skip-code-coverage: true skip-junit-reports: true + debian-12: + name: Debian 12 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12 + nox-session: ci-test-onedir + platform: linux + arch: x86_64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: true + skip-junit-reports: true + + debian-12-arm64: + name: Debian 12 Arm64 Test + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - debian-12-arm64-ci-deps + uses: ./.github/workflows/test-action.yml + with: + distro-slug: debian-12-arm64 + nox-session: ci-test-onedir + platform: linux + arch: aarch64 + nox-version: 2022.8.7 + python-version: "3.10" + testrun: ${{ needs.prepare-workflow.outputs.testrun }} + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + skip-code-coverage: true + skip-junit-reports: true + fedora-37: name: Fedora 37 Test if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} @@ -2297,6 +2415,14 @@ jobs: distro: debian version: "11" arch: aarch64 + - pkg-type: deb + distro: debian + version: "12" + arch: x86_64 + - pkg-type: deb + distro: debian + version: "12" + arch: aarch64 - pkg-type: deb distro: ubuntu version: "20.04" @@ -2989,6 +3115,8 @@ jobs: - debian-10-ci-deps - debian-11-arm64-ci-deps - debian-11-ci-deps + - debian-12-arm64-ci-deps + - debian-12-ci-deps - fedora-37-arm64-ci-deps - fedora-37-ci-deps - fedora-38-arm64-ci-deps @@ -3043,6 +3171,8 @@ jobs: - debian-10-ci-deps - debian-11-ci-deps - debian-11-arm64-ci-deps + - debian-12-ci-deps + - debian-12-arm64-ci-deps - fedora-37-ci-deps - fedora-37-arm64-ci-deps - fedora-38-ci-deps @@ -3069,6 +3199,8 @@ jobs: - debian-10 - debian-11 - debian-11-arm64 + - debian-12 + - debian-12-arm64 - fedora-37 - fedora-38 - opensuse-15 @@ -3086,6 +3218,8 @@ jobs: - debian-10-pkg-tests - debian-11-pkg-tests - debian-11-arm64-pkg-tests + - debian-12-pkg-tests + - debian-12-arm64-pkg-tests - photonos-3-pkg-tests - photonos-4-pkg-tests - photonos-4-arm64-pkg-tests diff --git a/.github/workflows/templates/build-deb-repo.yml.jinja b/.github/workflows/templates/build-deb-repo.yml.jinja index c2f0c09d0f2..165c60c02e9 100644 --- a/.github/workflows/templates/build-deb-repo.yml.jinja +++ b/.github/workflows/templates/build-deb-repo.yml.jinja @@ -8,6 +8,8 @@ ("debian", "10", "aarch64"), ("debian", "11", "x86_64"), ("debian", "11", "aarch64"), + ("debian", "12", "x86_64"), + ("debian", "12", "aarch64"), ("ubuntu", "20.04", "x86_64"), ("ubuntu", "20.04", "aarch64"), ("ubuntu", "22.04", "x86_64"), diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 5473ebd17ec..9ab635d6855 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -110,6 +110,12 @@ jobs: - distro-slug: debian-11-arm64 arch: aarch64 pkg-type: package + - distro-slug: debian-12 + arch: x86_64 + pkg-type: package + - distro-slug: debian-12-arm64 + arch: aarch64 + pkg-type: package - distro-slug: fedora-37 arch: x86_64 pkg-type: package diff --git a/changelog/64223.added.md b/changelog/64223.added.md new file mode 100644 index 00000000000..a68be1cfe15 --- /dev/null +++ b/changelog/64223.added.md @@ -0,0 +1 @@ +Added Salt support for Debian 12 diff --git a/cicd/golden-images.json b/cicd/golden-images.json index 962af9809e6..864296199e9 100644 --- a/cicd/golden-images.json +++ b/cicd/golden-images.json @@ -209,6 +209,26 @@ "is_windows": "false", "ssh_username": "admin" }, + "debian-12-arm64": { + "ami": "ami-055b0a6d5bb3e9ecd", + "ami_description": "CI Image of Debian 12 arm64", + "ami_name": "salt-project/ci/debian/12/arm64/20230912.1550", + "arch": "arm64", + "cloudwatch-agent-available": "false", + "instance_type": "m6g.large", + "is_windows": "false", + "ssh_username": "admin" + }, + "debian-12": { + "ami": "ami-0eada119571a913fd", + "ami_description": "CI Image of Debian 12 x86_64", + "ami_name": "salt-project/ci/debian/12/x86_64/20230912.1550", + "arch": "x86_64", + "cloudwatch-agent-available": "true", + "instance_type": "t3a.large", + "is_windows": "false", + "ssh_username": "admin" + }, "fedora-37-arm64": { "ami": "ami-0201f64fda9f1ca6d", "ami_description": "CI Image of Fedora 37 arm64", diff --git a/tests/pytests/unit/grains/test_core.py b/tests/pytests/unit/grains/test_core.py index 993c7239508..796da9658d2 100644 --- a/tests/pytests/unit/grains/test_core.py +++ b/tests/pytests/unit/grains/test_core.py @@ -890,6 +890,36 @@ def test_debian_11_os_grains(): _run_os_grains_tests(_os_release_data, {}, expectation) +@pytest.mark.skip_unless_on_linux +def test_debian_12_os_grains(): + """ + Test if OS grains are parsed correctly in Debian 12 "bookworm" + """ + # /etc/os-release data taken from base-files 12.4 + _os_release_data = { + "PRETTY_NAME": "Debian GNU/Linux 12 (bookworm)", + "NAME": "Debian GNU/Linux", + "VERSION_ID": "12", + "VERSION": "12 (bookworm)", + "VERSION_CODENAME": "bookworm", + "ID": "debian", + "HOME_URL": "https://www.debian.org/", + "SUPPORT_URL": "https://www.debian.org/support", + "BUG_REPORT_URL": "https://bugs.debian.org/", + } + expectation = { + "os": "Debian", + "os_family": "Debian", + "oscodename": "bookworm", + "osfullname": "Debian GNU/Linux", + "osrelease": "12", + "osrelease_info": (12,), + "osmajorrelease": 12, + "osfinger": "Debian-12", + } + _run_os_grains_tests(_os_release_data, {}, expectation) + + @pytest.mark.skip_unless_on_linux def test_centos_8_os_grains(): """ diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index f8ca561295c..fb4c72db6aa 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -51,11 +51,16 @@ _deb_distro_info = { "10": { "label": "deb10ary", "codename": "buster", - "suitename": "oldstable", + "suitename": "oldoldstable", }, "11": { "label": "deb11ary", "codename": "bullseye", + "suitename": "oldstable", + }, + "12": { + "label": "deb12ary", + "codename": "bookworm", "suitename": "stable", }, }, diff --git a/tools/pre_commit.py b/tools/pre_commit.py index 1dfbfb70476..9598f06aedc 100644 --- a/tools/pre_commit.py +++ b/tools/pre_commit.py @@ -96,6 +96,8 @@ def generate_workflows(ctx: Context): ("debian-10", "Debian 10", "x86_64"), ("debian-11", "Debian 11", "x86_64"), ("debian-11-arm64", "Debian 11 Arm64", "aarch64"), + ("debian-12", "Debian 12", "x86_64"), + ("debian-12-arm64", "Debian 12 Arm64", "aarch64"), ("fedora-37", "Fedora 37", "x86_64"), ("fedora-38", "Fedora 38", "x86_64"), ("opensuse-15", "Opensuse 15", "x86_64"), @@ -123,6 +125,8 @@ def generate_workflows(ctx: Context): ("debian-10", "Debian 10", "x86_64", "deb"), ("debian-11", "Debian 11", "x86_64", "deb"), ("debian-11-arm64", "Debian 11 Arm64", "aarch64", "deb"), + ("debian-12", "Debian 12", "x86_64", "deb"), + ("debian-12-arm64", "Debian 12 Arm64", "aarch64", "deb"), ("photonos-3", "Photon OS 3", "x86_64", "rpm"), ("photonos-4", "Photon OS 4", "x86_64", "rpm"), ("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "rpm"), @@ -156,6 +160,8 @@ def generate_workflows(ctx: Context): ("debian-10", "Debian 10", "x86_64"), ("debian-11", "Debian 11", "x86_64"), ("debian-11-arm64", "Debian 11 Arm64", "aarch64"), + ("debian-12", "Debian 12", "x86_64"), + ("debian-12-arm64", "Debian 12 Arm64", "aarch64"), ("fedora-37", "Fedora 37", "x86_64"), ("fedora-37-arm64", "Fedora 37 Arm64", "aarch64"), ("fedora-38", "Fedora 38", "x86_64"),