mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #66460 from s0undt3ch/hotfix/merge-forward-into-3007.x
[3007.x] Merge 3006.x into 3007.x
This commit is contained in:
commit
181f66f7dd
173 changed files with 20854 additions and 14463 deletions
42
.github/actions/download-artifact/action.yml
vendored
42
.github/actions/download-artifact/action.yml
vendored
|
@ -1,42 +0,0 @@
|
|||
# This actions was inspired by https://github.com/alehechka/download-tartifact
|
||||
---
|
||||
name: Download Tar Artifact
|
||||
description: >
|
||||
Download and extract a tar artifact that was previously uploaded in the
|
||||
workflow by the upload-tartifact action
|
||||
|
||||
inputs:
|
||||
name:
|
||||
description: Artifact name
|
||||
required: false
|
||||
path:
|
||||
description: Destination path
|
||||
required: false
|
||||
archive-name:
|
||||
description: >
|
||||
By default `inputs.name`(last resort, `archive`) is what's used to name the archive.
|
||||
This parameter allows a customizing that archive name. This will allow uploading multiple
|
||||
archives under the same 'name', like the underlying official action does
|
||||
without overriding the existing archives.
|
||||
required: false
|
||||
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
with:
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ inputs.path }}
|
||||
|
||||
- shell: bash
|
||||
working-directory: ${{ inputs.path }}
|
||||
run: |
|
||||
tar -xvf ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz
|
||||
|
||||
- shell: bash
|
||||
working-directory: ${{ inputs.path }}
|
||||
run: |
|
||||
rm -f ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz
|
4
.github/actions/upload-artifact/action.yml
vendored
4
.github/actions/upload-artifact/action.yml
vendored
|
@ -46,9 +46,7 @@ runs:
|
|||
shopt -s globstar || echo "'globstar' not available"
|
||||
tar -cavf ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz ${{ inputs.path }}
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz
|
||||
|
|
48
.github/workflows/build-deps-ci-action.yml
vendored
48
.github/workflows/build-deps-ci-action.yml
vendored
|
@ -47,8 +47,36 @@ env:
|
|||
|
||||
jobs:
|
||||
|
||||
generate-matrix:
|
||||
name: Generate Matrix
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix-include: ${{ steps.generate-matrix.outputs.matrix }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}
|
||||
|
||||
- name: Generate Test Matrix
|
||||
id: generate-matrix
|
||||
run: |
|
||||
tools ci deps-matrix
|
||||
|
||||
|
||||
linux-dependencies:
|
||||
name: Linux
|
||||
needs:
|
||||
- generate-matrix
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
|
@ -59,11 +87,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: centos-7
|
||||
arch: x86_64
|
||||
- distro-slug: centos-7-arm64
|
||||
arch: arm64
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['linux'] }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
@ -163,16 +187,14 @@ jobs:
|
|||
|
||||
macos-dependencies:
|
||||
name: MacOS
|
||||
needs:
|
||||
- generate-matrix
|
||||
runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: macos-12
|
||||
arch: x86_64
|
||||
- distro-slug: macos-13-arm64
|
||||
arch: arm64
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['macos'] }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
@ -250,6 +272,8 @@ jobs:
|
|||
path: nox.macos.${{ matrix.arch }}.tar.*
|
||||
|
||||
windows-dependencies:
|
||||
needs:
|
||||
- generate-matrix
|
||||
name: Windows
|
||||
runs-on:
|
||||
- self-hosted
|
||||
|
@ -261,9 +285,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: windows-2022
|
||||
arch: amd64
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['windows'] }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
|
4
.github/workflows/build-deps-onedir.yml
vendored
4
.github/workflows/build-deps-onedir.yml
vendored
|
@ -92,9 +92,7 @@ jobs:
|
|||
fail-fast: false
|
||||
max-parallel: 2
|
||||
matrix:
|
||||
arch:
|
||||
- x86_64
|
||||
- arm64
|
||||
arch: ${{ github.event.repository.fork && fromJSON('["x86_64"]') || fromJSON('["x86_64", "arm64"]') }}
|
||||
runs-on:
|
||||
- ${{ matrix.arch == 'arm64' && 'macos-13-xlarge' || 'macos-12' }}
|
||||
env:
|
||||
|
|
4
.github/workflows/build-packages.yml
vendored
4
.github/workflows/build-packages.yml
vendored
|
@ -51,9 +51,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch:
|
||||
- x86_64
|
||||
- arm64
|
||||
arch: ${{ github.event.repository.fork && fromJSON('["x86_64"]') || fromJSON('["x86_64", "arm64"]') }}
|
||||
source:
|
||||
- ${{ inputs.source }}
|
||||
|
||||
|
|
4
.github/workflows/build-salt-onedir.yml
vendored
4
.github/workflows/build-salt-onedir.yml
vendored
|
@ -99,9 +99,7 @@ jobs:
|
|||
fail-fast: false
|
||||
max-parallel: 2
|
||||
matrix:
|
||||
arch:
|
||||
- x86_64
|
||||
- arm64
|
||||
arch: ${{ github.event.repository.fork && fromJSON('["x86_64"]') || fromJSON('["x86_64", "arm64"]') }}
|
||||
runs-on:
|
||||
- ${{ matrix.arch == 'arm64' && 'macos-13-xlarge' || 'macos-12' }}
|
||||
|
||||
|
|
19
.github/workflows/ci.yml
vendored
19
.github/workflows/ci.yml
vendored
|
@ -945,7 +945,7 @@ jobs:
|
|||
|
||||
macos-12-pkg-tests:
|
||||
name: macOS 12 Package Test
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON(needs.prepare-workflow.outputs.os-labels), 'macos-12') }}
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
|
||||
needs:
|
||||
- prepare-workflow
|
||||
- build-pkgs-onedir
|
||||
|
@ -989,7 +989,7 @@ jobs:
|
|||
|
||||
macos-13-arm64-pkg-tests:
|
||||
name: macOS 13 Arm64 Package Test
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON(needs.prepare-workflow.outputs.os-labels), 'macos-13-arm64') }}
|
||||
needs:
|
||||
- prepare-workflow
|
||||
- build-pkgs-onedir
|
||||
|
@ -1200,7 +1200,7 @@ jobs:
|
|||
|
||||
macos-12:
|
||||
name: macOS 12 Test
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON(needs.prepare-workflow.outputs.os-labels), 'macos-12') }}
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
|
||||
needs:
|
||||
- prepare-workflow
|
||||
- build-ci-deps
|
||||
|
@ -1244,7 +1244,7 @@ jobs:
|
|||
|
||||
macos-13-arm64:
|
||||
name: macOS 13 Arm64 Test
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
|
||||
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON(needs.prepare-workflow.outputs.os-labels), 'macos-13-arm64') }}
|
||||
needs:
|
||||
- prepare-workflow
|
||||
- build-ci-deps
|
||||
|
@ -1831,11 +1831,10 @@ jobs:
|
|||
|
||||
- name: Get coverage reports
|
||||
id: get-coverage-reports
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
pattern: all-testrun-coverage-artifacts-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Display structure of downloaded files
|
||||
|
@ -1997,12 +1996,12 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
30
.github/workflows/nightly.yml
vendored
30
.github/workflows/nightly.yml
vendored
|
@ -1896,11 +1896,10 @@ jobs:
|
|||
|
||||
- name: Get coverage reports
|
||||
id: get-coverage-reports
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
pattern: all-testrun-coverage-artifacts-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Display structure of downloaded files
|
||||
|
@ -2080,7 +2079,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-src
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2211,7 +2210,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2401,7 +2400,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2550,6 +2549,7 @@ jobs:
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS Arch64 Packages
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos
|
||||
|
@ -2597,7 +2597,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-macos
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2654,6 +2654,7 @@ jobs:
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS arm64 Onedir Archive
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz
|
||||
|
@ -2725,7 +2726,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-onedir
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2796,11 +2797,10 @@ jobs:
|
|||
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
|
||||
|
||||
- name: Download Repository Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo
|
||||
pattern: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo-*
|
||||
merge-multiple: true
|
||||
path: repo/
|
||||
|
||||
- name: Decompress Repository Artifacts
|
||||
|
@ -2871,7 +2871,7 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
- name: Notify Slack
|
||||
id: slack
|
||||
|
@ -2935,7 +2935,7 @@ jobs:
|
|||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
@ -461,7 +461,7 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
- run: |
|
||||
# shellcheck disable=SC2129
|
||||
|
@ -475,7 +475,7 @@ jobs:
|
|||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
11
.github/workflows/scheduled.yml
vendored
11
.github/workflows/scheduled.yml
vendored
|
@ -1878,11 +1878,10 @@ jobs:
|
|||
|
||||
- name: Get coverage reports
|
||||
id: get-coverage-reports
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
pattern: all-testrun-coverage-artifacts-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Display structure of downloaded files
|
||||
|
@ -2046,12 +2045,12 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
23
.github/workflows/staging.yml
vendored
23
.github/workflows/staging.yml
vendored
|
@ -1916,7 +1916,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-src
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2047,7 +2047,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2239,7 +2239,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2388,6 +2388,7 @@ jobs:
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS Arch64 Packages
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos
|
||||
|
@ -2435,7 +2436,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-macos
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2492,6 +2493,7 @@ jobs:
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS arm64 Onedir Archive
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz
|
||||
|
@ -2563,7 +2565,7 @@ jobs:
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-onedir
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
@ -2603,11 +2605,10 @@ jobs:
|
|||
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
|
||||
|
||||
- name: Download Repository Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo
|
||||
pattern: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo-*
|
||||
merge-multiple: true
|
||||
path: repo/
|
||||
|
||||
- name: Decompress Repository Artifacts
|
||||
|
@ -2852,12 +2853,12 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
|
|
@ -1,364 +0,0 @@
|
|||
---
|
||||
name: Install Test Dependencies
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
nox-session:
|
||||
required: true
|
||||
type: string
|
||||
description: The nox session to run
|
||||
salt-version:
|
||||
type: string
|
||||
required: true
|
||||
description: The Salt version to set prior to running tests.
|
||||
cache-prefix:
|
||||
required: true
|
||||
type: string
|
||||
description: Seed used to invalidate caches
|
||||
nox-version:
|
||||
required: true
|
||||
type: string
|
||||
description: The nox version to install
|
||||
nox-archive-hash:
|
||||
required: true
|
||||
type: string
|
||||
description: Nox Tarball Cache Hash
|
||||
python-version:
|
||||
required: false
|
||||
type: string
|
||||
description: The python version to run tests with
|
||||
default: "3.10"
|
||||
package-name:
|
||||
required: false
|
||||
type: string
|
||||
description: The onedir package name to use
|
||||
default: salt
|
||||
|
||||
|
||||
env:
|
||||
COLUMNS: 190
|
||||
AWS_MAX_ATTEMPTS: "10"
|
||||
AWS_RETRY_MODE: "adaptive"
|
||||
PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
PIP_EXTRA_INDEX_URL: https://pypi.org/simple
|
||||
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
||||
RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1"
|
||||
|
||||
jobs:
|
||||
|
||||
linux-dependencies:
|
||||
name: Linux
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
- bastion
|
||||
env:
|
||||
USE_S3_CACHE: 'true'
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for arch, build_distro_slug in build_ci_deps_listing["linux"] %>
|
||||
- distro-slug: <{ build_distro_slug }>
|
||||
arch: <{ arch }>
|
||||
<%- endfor %>
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }}
|
||||
id: nox-dependencies-cache
|
||||
uses: ./.github/actions/cache
|
||||
with:
|
||||
path: nox.linux.${{ matrix.arch }}.tar.*
|
||||
key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }}
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: PyPi Proxy
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci
|
||||
|
||||
- name: Get Salt Project GitHub Actions Bot Environment
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
|
||||
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
|
||||
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Start VM
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
id: spin-up-vm
|
||||
run: |
|
||||
tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }}
|
||||
|
||||
- name: List Free Space
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true
|
||||
|
||||
- name: Upload Checkout To VM
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm rsync ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Cleanup .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Compress .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Download Compressed .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm download-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Destroy VM
|
||||
if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Upload Nox Requirements Tarball
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }}
|
||||
path: nox.linux.${{ matrix.arch }}.tar.*
|
||||
|
||||
macos-dependencies:
|
||||
name: MacOS
|
||||
runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for arch, build_distro_slug in build_ci_deps_listing["macos"] %>
|
||||
- distro-slug: <{ build_distro_slug }>
|
||||
arch: <{ arch }>
|
||||
<%- endfor %>
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }}
|
||||
id: nox-dependencies-cache
|
||||
uses: ./.github/actions/cache
|
||||
with:
|
||||
path: nox.macos.${{ matrix.arch }}.tar.*
|
||||
key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }}
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: Set up Python ${{ inputs.python-version }}
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "${{ inputs.python-version }}"
|
||||
|
||||
- name: Install System Dependencies
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
brew install openssl@3
|
||||
|
||||
- name: Install Nox
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python3 -m pip install 'nox==${{ inputs.nox-version }}'
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
env:
|
||||
PRINT_TEST_SELECTION: "0"
|
||||
PRINT_SYSTEM_INFO: "0"
|
||||
run: |
|
||||
export PYCURL_SSL_LIBRARY=openssl
|
||||
export LDFLAGS="-L/usr/local/opt/openssl@3/lib"
|
||||
export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
|
||||
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
|
||||
nox --install-only -e ${{ inputs.nox-session }}
|
||||
|
||||
- name: Cleanup .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
nox --force-color -e "pre-archive-cleanup(pkg=False)"
|
||||
|
||||
- name: Compress .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
nox --force-color -e compress-dependencies -- macos ${{ matrix.arch }}
|
||||
|
||||
- name: Upload Nox Requirements Tarball
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }}
|
||||
path: nox.macos.${{ matrix.arch }}.tar.*
|
||||
|
||||
windows-dependencies:
|
||||
name: Windows
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
- bastion
|
||||
env:
|
||||
USE_S3_CACHE: 'true'
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for arch, build_distro_slug in build_ci_deps_listing["windows"] %>
|
||||
- distro-slug: <{ build_distro_slug }>
|
||||
arch: <{ arch }>
|
||||
<%- endfor %>
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }}
|
||||
id: nox-dependencies-cache
|
||||
uses: ./.github/actions/cache
|
||||
with:
|
||||
path: nox.windows.${{ matrix.arch }}.tar.*
|
||||
key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }}
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: PyPi Proxy
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci
|
||||
|
||||
- name: Get Salt Project GitHub Actions Bot Environment
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
|
||||
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
|
||||
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Start VM
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
id: spin-up-vm
|
||||
run: |
|
||||
tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }}
|
||||
|
||||
- name: List Free Space
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true
|
||||
|
||||
- name: Upload Checkout To VM
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm rsync ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Cleanup .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Compress .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Download Compressed .nox Directory
|
||||
if: steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm download-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Destroy VM
|
||||
if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Upload Nox Requirements Tarball
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }}
|
||||
path: nox.windows.${{ matrix.arch }}.tar.*
|
|
@ -26,6 +26,7 @@
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS Arch64 Packages
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos
|
||||
|
@ -73,7 +74,7 @@
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-macos
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
path: artifacts/pkgs/incoming
|
||||
|
||||
- name: Download macOS arm64 Onedir Archive
|
||||
if: ${{ ! github.event.repository.fork }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz
|
||||
|
@ -109,7 +110,7 @@
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-onedir
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-${{ matrix.pkg-type }}-${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
- name: Upload Repository As An Artifact
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-src
|
||||
path: artifacts/pkgs/repo/*
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
|
7
.github/workflows/templates/ci.yml.jinja
vendored
7
.github/workflows/templates/ci.yml.jinja
vendored
|
@ -349,11 +349,10 @@
|
|||
|
||||
- name: Get coverage reports
|
||||
id: get-coverage-reports
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
pattern: all-testrun-coverage-artifacts-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Display structure of downloaded files
|
||||
|
|
4
.github/workflows/templates/layout.yml.jinja
vendored
4
.github/workflows/templates/layout.yml.jinja
vendored
|
@ -358,7 +358,7 @@ jobs:
|
|||
steps:
|
||||
- name: Get workflow information
|
||||
id: get-workflow-info
|
||||
uses: technote-space/workflow-conclusion-action@v3
|
||||
uses: im-open/workflow-conclusion@v2
|
||||
|
||||
<%- block set_pipeline_exit_status_extra_steps %>
|
||||
<%- endblock set_pipeline_exit_status_extra_steps %>
|
||||
|
@ -366,7 +366,7 @@ jobs:
|
|||
- name: Set Pipeline Exit Status
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then
|
||||
if [ "${{ steps.get-workflow-info.outputs.workflow_conclusion }}" != "success" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
|
|
|
@ -172,11 +172,10 @@ concurrency:
|
|||
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
|
||||
|
||||
- name: Download Repository Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo
|
||||
pattern: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo-*
|
||||
merge-multiple: true
|
||||
path: repo/
|
||||
|
||||
- name: Decompress Repository Artifacts
|
||||
|
|
|
@ -1,679 +0,0 @@
|
|||
name: Test Download Packages
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
salt-version:
|
||||
type: string
|
||||
required: true
|
||||
description: The Salt version of the packages to install and test
|
||||
cache-prefix:
|
||||
required: true
|
||||
type: string
|
||||
description: Seed used to invalidate caches
|
||||
environment:
|
||||
required: true
|
||||
type: string
|
||||
description: The environment to run tests against
|
||||
latest-release:
|
||||
required: true
|
||||
type: string
|
||||
description: The latest salt release
|
||||
nox-version:
|
||||
required: true
|
||||
type: string
|
||||
description: The nox version to install
|
||||
python-version:
|
||||
required: false
|
||||
type: string
|
||||
description: The python version to run tests with
|
||||
default: "3.10"
|
||||
package-name:
|
||||
required: false
|
||||
type: string
|
||||
description: The onedir package name to use
|
||||
default: salt
|
||||
skip-code-coverage:
|
||||
required: false
|
||||
type: boolean
|
||||
description: Skip code coverage
|
||||
default: false
|
||||
nox-session:
|
||||
required: false
|
||||
type: string
|
||||
description: The nox session to run
|
||||
default: ci-test-onedir
|
||||
|
||||
env:
|
||||
COLUMNS: 190
|
||||
AWS_MAX_ATTEMPTS: "10"
|
||||
AWS_RETRY_MODE: "adaptive"
|
||||
PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/
|
||||
PIP_EXTRA_INDEX_URL: https://pypi.org/simple
|
||||
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
||||
RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1"
|
||||
|
||||
jobs:
|
||||
|
||||
linux:
|
||||
name: Linux
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
- bastion
|
||||
env:
|
||||
USE_S3_CACHE: 'true'
|
||||
environment: ${{ inputs.environment }}
|
||||
timeout-minutes: 120 # 2 Hours - More than this and something is wrong
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for os in test_salt_pkg_downloads_listing["linux"] %>
|
||||
- distro-slug: <{ os.slug }>
|
||||
arch: <{ os.arch }>
|
||||
pkg-type: <{ os.pkg_type }>
|
||||
<%- endfor %>
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz
|
||||
|
||||
- name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }}
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}-pkg-download-linux
|
||||
|
||||
- name: Get Salt Project GitHub Actions Bot Environment
|
||||
run: |
|
||||
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
|
||||
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
|
||||
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Start VM
|
||||
id: spin-up-vm
|
||||
run: |
|
||||
tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }}
|
||||
|
||||
- name: List Free Space
|
||||
run: |
|
||||
tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true
|
||||
|
||||
- name: Upload Checkout To VM
|
||||
run: |
|
||||
tools --timestamps vm rsync ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Decompress .nox Directory
|
||||
run: |
|
||||
tools --timestamps vm decompress-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Show System Info
|
||||
run: |
|
||||
tools --timestamps --timeout-secs=1800 vm test --skip-requirements-install --print-system-information-only \
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs ${{ matrix.distro-slug }} -- download-pkgs
|
||||
|
||||
- name: Run Package Download Tests
|
||||
env:
|
||||
SALT_RELEASE: "${{ inputs.salt-version }}"
|
||||
SALT_REPO_ARCH: ${{ matrix.arch }}
|
||||
SALT_REPO_TYPE: ${{ inputs.environment }}
|
||||
SALT_REPO_USER: ${{ secrets.SALT_REPO_USER }}
|
||||
SALT_REPO_PASS: ${{ secrets.SALT_REPO_PASS }}
|
||||
SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }}
|
||||
SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }}
|
||||
SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}"
|
||||
LATEST_SALT_RELEASE: "${{ inputs.latest-release }}"
|
||||
DOWNLOAD_TEST_PACKAGE_TYPE: ${{ matrix.pkg-type }}
|
||||
run: |
|
||||
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
|
||||
-E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \
|
||||
-E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ matrix.distro-slug }} -- download-pkgs
|
||||
|
||||
- name: Combine Coverage Reports
|
||||
if: always() && inputs.skip-code-coverage == false && steps.spin-up-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
tools --timestamps vm combine-coverage ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-artifacts-from-vm
|
||||
if: always() && steps.spin-up-vm.outcome == 'success'
|
||||
run: |
|
||||
tools --timestamps vm download-artifacts ${{ matrix.distro-slug }}
|
||||
# Delete the salt onedir, we won't need it anymore and it will prevent
|
||||
# from it showing in the tree command below
|
||||
rm -rf artifacts/salt*
|
||||
tree -a artifacts
|
||||
|
||||
- name: Destroy VM
|
||||
if: always()
|
||||
run: |
|
||||
tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} || true
|
||||
|
||||
- name: Fix file ownership
|
||||
run: |
|
||||
sudo chown -R "$(id -un)" .
|
||||
|
||||
- name: Install Codecov CLI
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
# python3 -m pip install codecov-cli
|
||||
#
|
||||
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --import
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
|
||||
gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM
|
||||
shasum -a 256 -c codecov.SHA256SUM
|
||||
chmod +x codecov
|
||||
|
||||
- name: Upload Source Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/salt.xml ]; then
|
||||
echo "The artifacts/coverage/salt.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/salt.xml \
|
||||
# --flag salt --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/salt.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags salt,${{ matrix.distro-slug }},pkg \
|
||||
--name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Tests Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/tests.xml ]; then
|
||||
echo "The artifacts/coverage/tests.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/tests.xml \
|
||||
# --flag tests --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/tests.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags tests,${{ matrix.distro-slug }},pkg \
|
||||
--name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
!artifacts/salt-*.tar.*
|
||||
|
||||
|
||||
macos:
|
||||
name: MacOS
|
||||
runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
|
||||
env:
|
||||
USE_S3_CACHE: 'false'
|
||||
environment: ${{ inputs.environment }}
|
||||
timeout-minutes: 120 # 2 Hours - More than this and something is wrong
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for os in test_salt_pkg_downloads_listing["macos"] %>
|
||||
- distro-slug: <{ os.slug }>
|
||||
arch: <{ os.arch }>
|
||||
pkg-type: <{ os.pkg_type }>
|
||||
<%- endfor %>
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Install System Dependencies
|
||||
run: |
|
||||
brew install tree
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: Set up Python ${{ inputs.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "${{ inputs.python-version }}"
|
||||
update-environment: true
|
||||
|
||||
- name: Install Nox
|
||||
run: |
|
||||
python3 -m pip install 'nox==${{ inputs.nox-version }}'
|
||||
|
||||
- name: Download nox.macos.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }}
|
||||
|
||||
- name: Decompress .nox Directory
|
||||
run: |
|
||||
nox --force-color -e decompress-dependencies -- macos ${{ matrix.arch }}
|
||||
|
||||
- name: Show System Info
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: "1"
|
||||
PRINT_SYSTEM_INFO_ONLY: "1"
|
||||
run: |
|
||||
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- download-pkgs
|
||||
|
||||
- name: Run Package Download Tests
|
||||
env:
|
||||
SKIP_REQUIREMENTS_INSTALL: "1"
|
||||
PRINT_TEST_SELECTION: "0"
|
||||
PRINT_TEST_PLAN_ONLY: "0"
|
||||
PRINT_SYSTEM_INFO: "0"
|
||||
RERUN_FAILURES: "1"
|
||||
GITHUB_ACTIONS_PIPELINE: "1"
|
||||
SKIP_INITIAL_GH_ACTIONS_FAILURES: "1"
|
||||
SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}"
|
||||
COVERAGE_CONTEXT: ${{ matrix.distro-slug }}
|
||||
SALT_RELEASE: "${{ inputs.salt-version }}"
|
||||
SALT_REPO_ARCH: ${{ matrix.arch }}
|
||||
LATEST_SALT_RELEASE: "${{ inputs.latest-release }}"
|
||||
SALT_REPO_TYPE: ${{ inputs.environment }}
|
||||
SALT_REPO_USER: ${{ secrets.SALT_REPO_USER }}
|
||||
SALT_REPO_PASS: ${{ secrets.SALT_REPO_PASS }}
|
||||
SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }}
|
||||
SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }}
|
||||
DOWNLOAD_TEST_PACKAGE_TYPE: ${{ matrix.pkg-type }}
|
||||
run: |
|
||||
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- download-pkgs
|
||||
|
||||
- name: Fix file ownership
|
||||
run: |
|
||||
sudo chown -R "$(id -un)" .
|
||||
|
||||
- name: Combine Coverage Reports
|
||||
if: always() && inputs.skip-code-coverage == false && job.status != 'cancelled'
|
||||
run: |
|
||||
nox --force-color -e combine-coverage
|
||||
|
||||
- name: Prepare Test Run Artifacts
|
||||
id: download-artifacts-from-vm
|
||||
if: always() && job.status != 'cancelled'
|
||||
run: |
|
||||
# Delete the salt onedir, we won't need it anymore and it will prevent
|
||||
# from it showing in the tree command below
|
||||
rm -rf artifacts/salt*
|
||||
tree -a artifacts
|
||||
|
||||
- name: Install Codecov CLI
|
||||
if: always() && inputs.skip-code-coverage == false && job.status != 'cancelled'
|
||||
run: |
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
# python3 -m pip install codecov-cli
|
||||
#
|
||||
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --import
|
||||
curl -Os https://uploader.codecov.io/latest/macos/codecov
|
||||
curl -Os https://uploader.codecov.io/latest/macos/codecov.SHA256SUM
|
||||
curl -Os https://uploader.codecov.io/latest/macos/codecov.SHA256SUM.sig
|
||||
gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM
|
||||
shasum -a 256 -c codecov.SHA256SUM
|
||||
chmod +x codecov
|
||||
|
||||
- name: Upload Source Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/salt.xml ]; then
|
||||
echo "The artifacts/coverage/salt.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/salt.xml \
|
||||
# --flag salt --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/salt.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags salt,${{ matrix.distro-slug }},pkg \
|
||||
--name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Tests Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/tests.xml ]; then
|
||||
echo "The artifacts/coverage/tests.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/tests.xml \
|
||||
# --flag tests --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/tests.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags tests,${{ matrix.distro-slug }},pkg \
|
||||
--name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
!artifacts/salt-*.tar.*
|
||||
|
||||
|
||||
windows:
|
||||
name: Windows
|
||||
env:
|
||||
USE_S3_CACHE: 'true'
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
- bastion
|
||||
environment: ${{ inputs.environment }}
|
||||
timeout-minutes: 120 # 2 Hours - More than this and something is wrong
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
<%- for os in test_salt_pkg_downloads_listing["windows"] %>
|
||||
- distro-slug: <{ os.slug }>
|
||||
arch: <{ os.arch }>
|
||||
pkg-type: <{ os.pkg_type }>
|
||||
<%- endfor %>
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Onedir Tarball as an Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz
|
||||
path: artifacts/
|
||||
|
||||
- name: Decompress Onedir Tarball
|
||||
shell: bash
|
||||
run: |
|
||||
python3 -c "import os; os.makedirs('artifacts', exist_ok=True)"
|
||||
cd artifacts
|
||||
tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz
|
||||
|
||||
- name: Download nox.windows.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }}
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}-pkg-download-windows
|
||||
|
||||
- name: Get Salt Project GitHub Actions Bot Environment
|
||||
run: |
|
||||
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
|
||||
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
|
||||
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Start VM
|
||||
id: spin-up-vm
|
||||
run: |
|
||||
tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }}
|
||||
|
||||
- name: List Free Space
|
||||
run: |
|
||||
tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true
|
||||
|
||||
- name: Upload Checkout To VM
|
||||
run: |
|
||||
tools --timestamps vm rsync ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Decompress .nox Directory
|
||||
run: |
|
||||
tools --timestamps vm decompress-dependencies ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Show System Info
|
||||
run: |
|
||||
tools --timestamps --timeout-secs=1800 vm test --skip-requirements-install --print-system-information-only \
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs ${{ matrix.distro-slug }} -- download-pkgs
|
||||
|
||||
- name: Run Package Download Tests
|
||||
env:
|
||||
SALT_RELEASE: "${{ inputs.salt-version }}"
|
||||
SALT_REPO_ARCH: ${{ matrix.arch }}
|
||||
LATEST_SALT_RELEASE: "${{ inputs.latest-release }}"
|
||||
SALT_REPO_TYPE: ${{ inputs.environment }}
|
||||
SALT_REPO_USER: ${{ secrets.SALT_REPO_USER }}
|
||||
SALT_REPO_PASS: ${{ secrets.SALT_REPO_PASS }}
|
||||
SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }}
|
||||
SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }}
|
||||
SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}"
|
||||
DOWNLOAD_TEST_PACKAGE_TYPE: ${{ matrix.pkg-type }}
|
||||
run: |
|
||||
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
|
||||
-E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \
|
||||
-E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ matrix.distro-slug }} -- download-pkgs
|
||||
|
||||
- name: Combine Coverage Reports
|
||||
if: always() && inputs.skip-code-coverage == false && steps.spin-up-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
tools --timestamps vm combine-coverage ${{ matrix.distro-slug }}
|
||||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-artifacts-from-vm
|
||||
if: always() && steps.spin-up-vm.outcome == 'success'
|
||||
run: |
|
||||
tools --timestamps vm download-artifacts ${{ matrix.distro-slug }}
|
||||
# Delete the salt onedir, we won't need it anymore and it will prevent
|
||||
# from it showing in the tree command below
|
||||
rm -rf artifacts/salt*
|
||||
tree -a artifacts
|
||||
|
||||
- name: Destroy VM
|
||||
if: always()
|
||||
run: |
|
||||
tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} || true
|
||||
|
||||
- name: Fix file ownership
|
||||
run: |
|
||||
sudo chown -R "$(id -un)" .
|
||||
|
||||
- name: Install Codecov CLI
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
# python3 -m pip install codecov-cli
|
||||
#
|
||||
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --import
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
|
||||
gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM
|
||||
shasum -a 256 -c codecov.SHA256SUM
|
||||
chmod +x codecov
|
||||
|
||||
- name: Upload Source Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/salt.xml ]; then
|
||||
echo "The artifacts/coverage/salt.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/salt.xml \
|
||||
# --flag salt --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/salt.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags salt,${{ matrix.distro-slug }},pkg \
|
||||
--name salt.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Tests Code Coverage To Codecov
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
run: |
|
||||
if [ ! -s artifacts/coverage/tests.xml ]; then
|
||||
echo "The artifacts/coverage/tests.xml file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
# We can't yet use tokenless uploads with the codecov CLI
|
||||
#codecovcli --auto-load-params-from GithubActions --verbose --token ${{ secrets.CODECOV_TOKEN }} \
|
||||
# do-upload --git-service github --sha ${{ github.sha }} \
|
||||
# --file artifacts/coverage/tests.xml \
|
||||
# --flag tests --flag ${{ matrix.distro-slug }} --flag pkg \
|
||||
# --name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs
|
||||
n=0
|
||||
until [ "$n" -ge 5 ]
|
||||
do
|
||||
if ./codecov --file artifacts/coverage/tests.xml \
|
||||
--sha ${{ github.event.pull_request.head.sha || github.sha }} ${{ github.event_name == 'pull_request' && format('--parent {0}', github.event.pull_request.base.sha) }} \
|
||||
--flags tests,${{ matrix.distro-slug }},pkg \
|
||||
--name tests.${{ matrix.distro-slug }}.${{ inputs.nox-session }}.download-pkgs --nonZero; then
|
||||
rc=$?
|
||||
break
|
||||
fi
|
||||
rc=$?
|
||||
n=$((n+1))
|
||||
sleep 15
|
||||
done
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "Failed to upload codecov stats"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
!artifacts/salt-*.tar.*
|
|
@ -13,9 +13,7 @@
|
|||
needs:
|
||||
- prepare-workflow
|
||||
- publish-repositories
|
||||
<%- for slug in test_salt_pkg_downloads_needs_slugs %>
|
||||
- <{ slug }>
|
||||
<%- endfor %>
|
||||
- build-ci-deps
|
||||
<%- if gh_environment == "release" %>
|
||||
- download-onedir-artifact
|
||||
<%- else %>
|
||||
|
|
35
.github/workflows/test-action-linux.yml
vendored
35
.github/workflows/test-action-linux.yml
vendored
|
@ -82,6 +82,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix-include: ${{ steps.generate-matrix.outputs.matrix }}
|
||||
build-reports: ${{ steps.generate-matrix.outputs.build-reports }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
@ -272,53 +273,47 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage Test Run Artifacts
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}${{ matrix.fips && '-fips ' || '' }}
|
||||
path: |
|
||||
artifacts/coverage/
|
||||
|
||||
- name: Upload JUnit XML Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}${{ matrix.fips && '-fips ' || '' }}
|
||||
path: |
|
||||
artifacts/xml-unittests-output/
|
||||
|
||||
- name: Upload Test Run Log Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}${{ matrix.fips && '-fips ' || '' }}
|
||||
path: |
|
||||
artifacts/logs
|
||||
|
||||
report:
|
||||
name: Test Reports
|
||||
if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
if: always() && fromJSON(needs.generate-matrix.outputs.build-reports) && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- test
|
||||
- generate-matrix
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Code Coverage Test Run Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ inputs.skip-code-coverage == false }}
|
||||
id: download-coverage-artifacts
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
pattern: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Show Downloaded Test Run Artifacts
|
||||
|
@ -356,9 +351,7 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage DB
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
name: all-testrun-coverage-artifacts-${{ inputs.distro-slug }}.${{ inputs.nox-session }}
|
||||
path: artifacts/coverage
|
||||
|
|
35
.github/workflows/test-action-macos.yml
vendored
35
.github/workflows/test-action-macos.yml
vendored
|
@ -79,6 +79,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix-include: ${{ steps.generate-matrix.outputs.matrix }}
|
||||
build-reports: ${{ steps.generate-matrix.outputs.build-reports }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
@ -300,53 +301,47 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage Test Run Artifacts
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}
|
||||
path: |
|
||||
artifacts/coverage/
|
||||
|
||||
- name: Upload JUnit XML Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}
|
||||
path: |
|
||||
artifacts/xml-unittests-output/
|
||||
|
||||
- name: Upload Test Run Log Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}
|
||||
path: |
|
||||
artifacts/logs
|
||||
|
||||
report:
|
||||
name: Test Reports
|
||||
if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
if: always() && fromJSON(needs.generate-matrix.outputs.build-reports) && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- test
|
||||
- generate-matrix
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Code Coverage Test Run Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ inputs.skip-code-coverage == false }}
|
||||
id: download-coverage-artifacts
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
pattern: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Show Downloaded Test Run Artifacts
|
||||
|
@ -389,9 +384,7 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage DB
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
name: all-testrun-coverage-artifacts-${{ inputs.distro-slug }}.${{ inputs.nox-session }}
|
||||
path: artifacts/coverage
|
||||
|
|
35
.github/workflows/test-action-windows.yml
vendored
35
.github/workflows/test-action-windows.yml
vendored
|
@ -82,6 +82,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix-include: ${{ steps.generate-matrix.outputs.matrix }}
|
||||
build-reports: ${{ steps.generate-matrix.outputs.build-reports }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
|
@ -272,54 +273,48 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage Test Run Artifacts
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}
|
||||
path: |
|
||||
artifacts/coverage/
|
||||
|
||||
- name: Upload JUnit XML Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}
|
||||
path: |
|
||||
artifacts/xml-unittests-output/
|
||||
|
||||
- name: Upload Test Run Log Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}
|
||||
name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-grp${{ matrix.test-group || '1' }}
|
||||
path: |
|
||||
artifacts/logs
|
||||
|
||||
|
||||
report:
|
||||
name: Test Reports
|
||||
if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
if: always() && fromJSON(needs.generate-matrix.outputs.build-reports) && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped'
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- test
|
||||
- generate-matrix
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Code Coverage Test Run Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ inputs.skip-code-coverage == false }}
|
||||
id: download-coverage-artifacts
|
||||
with:
|
||||
name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}
|
||||
pattern: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-*
|
||||
merge-multiple: true
|
||||
path: artifacts/coverage/
|
||||
|
||||
- name: Show Downloaded Test Run Artifacts
|
||||
|
@ -357,9 +352,7 @@ jobs:
|
|||
|
||||
- name: Upload Code Coverage DB
|
||||
if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: all-testrun-coverage-artifacts
|
||||
name: all-testrun-coverage-artifacts-${{ inputs.distro-slug }}.${{ inputs.nox-session }}
|
||||
path: artifacts/coverage
|
||||
|
|
184
.github/workflows/test-package-downloads-action.yml
vendored
184
.github/workflows/test-package-downloads-action.yml
vendored
|
@ -55,8 +55,35 @@ env:
|
|||
|
||||
jobs:
|
||||
|
||||
generate-matrix:
|
||||
name: Generate Matrix
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix-include: ${{ steps.generate-matrix.outputs.matrix }}
|
||||
steps:
|
||||
|
||||
- name: "Throttle Builds"
|
||||
shell: bash
|
||||
run: |
|
||||
t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t"
|
||||
|
||||
- name: Checkout Source Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python Tools Scripts
|
||||
uses: ./.github/actions/setup-python-tools-scripts
|
||||
with:
|
||||
cache-prefix: ${{ inputs.cache-prefix }}
|
||||
|
||||
- name: Generate Test Matrix
|
||||
id: generate-matrix
|
||||
run: |
|
||||
tools ci pkg-downloads-matrix
|
||||
|
||||
linux:
|
||||
name: Linux
|
||||
needs:
|
||||
- generate-matrix
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- linux
|
||||
|
@ -68,115 +95,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: amazonlinux-2
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: amazonlinux-2-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: amazonlinux-2-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: amazonlinux-2023
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: amazonlinux-2023-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: amazonlinux-2023-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: centos-7
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: centos-7-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: centos-7-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: debian-11
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: debian-11-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: debian-12
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: debian-12-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: fedora-39
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: fedora-39-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: fedora-39-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-4
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-4-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-4-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-5
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-5-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: photonos-5-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-8
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-8-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-8-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-9
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-9-arm64
|
||||
arch: aarch64
|
||||
pkg-type: package
|
||||
- distro-slug: rockylinux-9-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-20.04
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-20.04-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-22.04
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-22.04
|
||||
arch: x86_64
|
||||
pkg-type: onedir
|
||||
- distro-slug: ubuntu-22.04-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-22.04-arm64
|
||||
arch: arm64
|
||||
pkg-type: onedir
|
||||
- distro-slug: ubuntu-23.04
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: ubuntu-23.04-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['linux'] }}
|
||||
|
||||
steps:
|
||||
|
||||
|
@ -361,11 +280,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}-${{ matrix.pkg-type }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
|
@ -374,6 +291,8 @@ jobs:
|
|||
|
||||
macos:
|
||||
name: MacOS
|
||||
needs:
|
||||
- generate-matrix
|
||||
runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
|
||||
env:
|
||||
USE_S3_CACHE: 'false'
|
||||
|
@ -382,19 +301,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: macos-12
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: macos-13
|
||||
arch: x86_64
|
||||
pkg-type: package
|
||||
- distro-slug: macos-13-arm64
|
||||
arch: arm64
|
||||
pkg-type: package
|
||||
- distro-slug: macos-13-arm64
|
||||
arch: arm64
|
||||
pkg-type: onedir
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['macos'] }}
|
||||
|
||||
steps:
|
||||
|
||||
|
@ -570,11 +477,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}-${{ matrix.pkg-type }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
|
@ -583,6 +488,8 @@ jobs:
|
|||
|
||||
windows:
|
||||
name: Windows
|
||||
needs:
|
||||
- generate-matrix
|
||||
env:
|
||||
USE_S3_CACHE: 'true'
|
||||
runs-on:
|
||||
|
@ -594,16 +501,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro-slug: windows-2022
|
||||
arch: amd64
|
||||
pkg-type: nsis
|
||||
- distro-slug: windows-2022
|
||||
arch: amd64
|
||||
pkg-type: msi
|
||||
- distro-slug: windows-2022
|
||||
arch: amd64
|
||||
pkg-type: onedir
|
||||
include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include)['windows'] }}
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Code
|
||||
|
@ -782,11 +680,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}
|
||||
name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }}-${{ matrix.pkg-type }}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/salt/*
|
||||
|
|
14
.github/workflows/test-packages-action-linux.yml
vendored
14
.github/workflows/test-packages-action-linux.yml
vendored
|
@ -200,7 +200,7 @@ jobs:
|
|||
run: |
|
||||
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install ${{ matrix.fips && '--fips ' || '' }}\
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \
|
||||
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
|
||||
${{ matrix.version && format('--prev-version={0}', matrix.version) || ''}}
|
||||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-artifacts-from-vm
|
||||
|
@ -219,11 +219,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/pkg/*
|
||||
|
@ -248,11 +246,9 @@ jobs:
|
|||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-test-run-artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: artifacts
|
||||
|
||||
- name: Show Test Run Artifacts
|
||||
|
|
14
.github/workflows/test-packages-action-macos.yml
vendored
14
.github/workflows/test-packages-action-macos.yml
vendored
|
@ -185,7 +185,7 @@ jobs:
|
|||
COVERAGE_CONTEXT: ${{ inputs.distro-slug }}
|
||||
run: |
|
||||
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} \
|
||||
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
|
||||
${{ matrix.version && format('--prev-version={0}', matrix.version) || ''}}
|
||||
|
||||
- name: Fix file ownership
|
||||
run: |
|
||||
|
@ -202,11 +202,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/pkg/*
|
||||
|
@ -231,11 +229,9 @@ jobs:
|
|||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-test-run-artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: artifacts
|
||||
|
||||
- name: Show Test Run Artifacts
|
||||
|
|
|
@ -199,7 +199,7 @@ jobs:
|
|||
run: |
|
||||
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install ${{ matrix.fips && '--fips ' || '' }}\
|
||||
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \
|
||||
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
|
||||
${{ matrix.version && format('--prev-version={0}', matrix.version) || ''}}
|
||||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-artifacts-from-vm
|
||||
|
@ -218,11 +218,9 @@ jobs:
|
|||
|
||||
- name: Upload Test Run Artifacts
|
||||
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
|
||||
uses: actions/upload-artifact@v3
|
||||
# This needs to be actions/upload-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: |
|
||||
artifacts
|
||||
!artifacts/pkg/*
|
||||
|
@ -247,11 +245,9 @@ jobs:
|
|||
|
||||
- name: Download Test Run Artifacts
|
||||
id: download-test-run-artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
# This needs to be actions/download-artifact@v3 because we upload multiple artifacts
|
||||
# under the same name something that actions/upload-artifact@v4 does not do.
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
|
||||
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ inputs.arch }}-${{ inputs.pkg-type }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}
|
||||
path: artifacts
|
||||
|
||||
- name: Show Test Run Artifacts
|
||||
|
|
82
CHANGELOG.md
82
CHANGELOG.md
|
@ -7,6 +7,88 @@ Versions are `MAJOR.PATCH`.
|
|||
|
||||
# Changelog
|
||||
|
||||
|
||||
## 3006.8 (2024-04-29)
|
||||
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed deprecated code scheduled to be removed on 2024-01-01:
|
||||
|
||||
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
|
||||
* All of the ``salt/log`` package.
|
||||
* The ``salt/modules/cassandra_mod.py`` module.
|
||||
* The ``salt/returners/cassandra_return.py`` returner.
|
||||
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
|
||||
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
|
||||
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
|
||||
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- ``user.add`` on Windows now allows you to add user names that contain all
|
||||
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
|
||||
- Fix an issue with the win_system module detecting established connections on
|
||||
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
|
||||
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
|
||||
- Fixed an issue with adding new machine policies and applying those same
|
||||
policies in the same state by adding a ``refresh_cache`` option to the
|
||||
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
|
||||
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
|
||||
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
|
||||
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
|
||||
- Fixes an issue in pkg.refresh_db on Windows where new package definition
|
||||
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
|
||||
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
|
||||
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
|
||||
- When using s3fs, if files are deleted from the bucket, they were not deleted in
|
||||
the master or minion local cache, which could lead to unexpected file copies or
|
||||
even state applications. This change makes the local cache consistent with the
|
||||
remote bucket by deleting files locally that are deleted from the bucket.
|
||||
|
||||
**NOTE** this could lead to **breakage** on your affected systems if it was
|
||||
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
|
||||
- Fixed an issue with file.directory state where paths would be modified in test
|
||||
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
|
||||
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
|
||||
- Fixed a issue with server channel where a minion's public key
|
||||
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
|
||||
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
|
||||
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
|
||||
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
|
||||
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
|
||||
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
|
||||
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
|
||||
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
|
||||
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
|
||||
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
|
||||
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
|
||||
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
|
||||
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
|
||||
|
||||
|
||||
### Added
|
||||
|
||||
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
|
||||
|
||||
|
||||
### Security
|
||||
|
||||
- Upgrade to `cryptography==42.0.5` due to a few security issues:
|
||||
|
||||
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
|
||||
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
|
||||
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
|
||||
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
|
||||
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
|
||||
|
||||
|
||||
## 3007.0 (2024-03-03)
|
||||
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
``user.add`` on Windows now allows you to add user names that contain all
|
||||
numeric characters
|
|
@ -1,2 +0,0 @@
|
|||
Fix an issue with the win_system module detecting established connections on
|
||||
non-Windows systems. Uses psutils instead of parsing the return of netstat
|
|
@ -1 +0,0 @@
|
|||
pkg.refresh_db on Windows now honors saltenv
|
|
@ -1,3 +0,0 @@
|
|||
Fixed an issue with adding new machine policies and applying those same
|
||||
policies in the same state by adding a ``refresh_cache`` option to the
|
||||
``lgpo.set`` state.
|
|
@ -1 +0,0 @@
|
|||
file.managed correctly handles file path with '#'
|
|
@ -1 +0,0 @@
|
|||
Fix user and group management on Windows to handle the Everyone group
|
|
@ -1,2 +0,0 @@
|
|||
Fixes an issue in pkg.refresh_db on Windows where new package definition
|
||||
files were not being picked up on the first run
|
|
@ -1 +0,0 @@
|
|||
Display a proper error when pki commands fail in the win_pki module
|
|
@ -1 +0,0 @@
|
|||
Prevent full system upgrade on single package install for Arch Linux
|
|
@ -1,7 +0,0 @@
|
|||
When using s3fs, if files are deleted from the bucket, they were not deleted in
|
||||
the master or minion local cache, which could lead to unexpected file copies or
|
||||
even state applications. This change makes the local cache consistent with the
|
||||
remote bucket by deleting files locally that are deleted from the bucket.
|
||||
|
||||
**NOTE** this could lead to **breakage** on your affected systems if it was
|
||||
inadvertently depending on previously deleted files.
|
|
@ -1 +0,0 @@
|
|||
Add Fedora 39 support
|
|
@ -1 +0,0 @@
|
|||
Drop Fedora 37 and Fedora 38 support
|
|
@ -1,2 +0,0 @@
|
|||
Fixed an issue with file.directory state where paths would be modified in test
|
||||
mode if backupname is used.
|
|
@ -1 +0,0 @@
|
|||
Drop CentOS Stream 8 and 9 from CI/CD
|
|
@ -1 +0,0 @@
|
|||
Drop Photon OS 3 support
|
|
@ -1 +0,0 @@
|
|||
Fix content type backwards compatablity with http proxy post requests in the http utils module.
|
|
@ -1 +0,0 @@
|
|||
The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly.
|
|
@ -1,5 +0,0 @@
|
|||
Upgrade to `cryptography==42.0.5` due to a few security issues:
|
||||
|
||||
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
|
||||
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
|
||||
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4
|
|
@ -1 +0,0 @@
|
|||
Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services
|
|
@ -1,7 +0,0 @@
|
|||
Removed deprecated code scheduled to be removed on 2024-01-01:
|
||||
|
||||
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
|
||||
* All of the ``salt/log`` package.
|
||||
* The ``salt/modules/cassandra_mod.py`` module.
|
||||
* The ``salt/returners/cassandra_return.py`` returner.
|
||||
* The ``salt/returners/django_return.py`` returner.
|
|
@ -1 +0,0 @@
|
|||
Auto discovery of ssh, scp and ssh-keygen binaries.
|
|
@ -1 +0,0 @@
|
|||
Add leading slash to salt helper file paths as per dh_links requirement
|
|
@ -1 +0,0 @@
|
|||
Fixed x509.certificate_managed - ca_server did not return a certificate
|
|
@ -1 +0,0 @@
|
|||
removed log line that did nothing.
|
|
@ -1,2 +0,0 @@
|
|||
Chocolatey: Make sure the return dictionary from ``chocolatey.version``
|
||||
contains lowercase keys
|
|
@ -1 +0,0 @@
|
|||
fix cacheing inline pillar, by not rendering inline pillar during cache save function.
|
|
@ -1 +0,0 @@
|
|||
Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h
|
|
@ -1 +0,0 @@
|
|||
The file module correctly perserves file permissions on link target.
|
|
@ -1 +0,0 @@
|
|||
Upgrade relenv to 0.16.0 and python to 3.10.14
|
|
@ -1 +0,0 @@
|
|||
Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g
|
1
changelog/66488.security.md
Normal file
1
changelog/66488.security.md
Normal file
|
@ -0,0 +1 @@
|
|||
Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj
|
|
@ -1 +0,0 @@
|
|||
backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing.
|
|
@ -9,6 +9,6 @@ mandatory_os_slugs:
|
|||
- amazonlinux-2023-arm64
|
||||
- archlinux-lts
|
||||
- photonos-5-arm64
|
||||
- macos-13-arm64
|
||||
- macos-12
|
||||
- ubuntu-22.04-arm64
|
||||
- windows-2022
|
||||
|
|
|
@ -271,9 +271,8 @@
|
|||
#ping_interval: 0
|
||||
|
||||
# To auto recover minions if master changes IP address (DDNS)
|
||||
# auth_tries: 10
|
||||
# auth_safemode: True
|
||||
# ping_interval: 2
|
||||
# master_alive_interval: 10
|
||||
# master_tries: -1
|
||||
#
|
||||
# Minions won't know master is missing until a ping fails. After the ping fail,
|
||||
# the minion will attempt authentication and likely fails out and cause a restart.
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-API" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-API" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-api \- salt-api Command
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-CALL" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-CALL" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-call \- salt-call Documentation
|
||||
.SH SYNOPSIS
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-CLOUD" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-CLOUD" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-cloud \- Salt Cloud Command
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-CP" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-CP" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-cp \- salt-cp Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-KEY" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-KEY" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-key \- salt-key Documentation
|
||||
.SH SYNOPSIS
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-MASTER" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-MASTER" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-master \- salt-master Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-MINION" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-MINION" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-minion \- salt-minion Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-PROXY" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-PROXY" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-proxy \- salt-proxy Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-RUN" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-RUN" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-run \- salt-run Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-SSH" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-SSH" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-ssh \- salt-ssh Documentation
|
||||
.SH SYNOPSIS
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT-SYNDIC" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT-SYNDIC" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt-syndic \- salt-syndic Documentation
|
||||
.sp
|
||||
|
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SALT" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SALT" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
salt \- salt
|
||||
.SH SYNOPSIS
|
||||
|
|
31784
doc/man/salt.7
31784
doc/man/salt.7
File diff suppressed because it is too large
Load diff
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "SPM" "1" "Generated on March 03, 2024 at 06:52:04 AM UTC." "3007.0" "Salt"
|
||||
.TH "SPM" "1" "Generated on April 29, 2024 at 03:20:12 AM UTC." "3006.8" "Salt"
|
||||
.SH NAME
|
||||
spm \- Salt Package Manager Command
|
||||
.sp
|
||||
|
|
|
@ -291,7 +291,9 @@ Default: ``0``
|
|||
|
||||
Configures how often, in seconds, the minion will verify that the current
|
||||
master is alive and responding. The minion will try to establish a connection
|
||||
to the next master in the list if it finds the existing one is dead.
|
||||
to the next master in the list if it finds the existing one is dead. This
|
||||
setting can also be used to detect master DNS record changes when a minion has
|
||||
been disconnected.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
|
|
96
doc/topics/releases/3006.8.md
Normal file
96
doc/topics/releases/3006.8.md
Normal file
|
@ -0,0 +1,96 @@
|
|||
(release-3006.8)=
|
||||
# Salt 3006.8 release notes
|
||||
|
||||
<!---
|
||||
Do not edit this file. This is auto generated.
|
||||
Edit the templates in doc/topics/releases/templates/
|
||||
for a given release.
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
Add release specific details below
|
||||
-->
|
||||
|
||||
<!--
|
||||
Do not edit the changelog below.
|
||||
This is auto generated.
|
||||
-->
|
||||
## Changelog
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed deprecated code scheduled to be removed on 2024-01-01:
|
||||
|
||||
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
|
||||
* All of the ``salt/log`` package.
|
||||
* The ``salt/modules/cassandra_mod.py`` module.
|
||||
* The ``salt/returners/cassandra_return.py`` returner.
|
||||
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
|
||||
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
|
||||
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
|
||||
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- ``user.add`` on Windows now allows you to add user names that contain all
|
||||
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
|
||||
- Fix an issue with the win_system module detecting established connections on
|
||||
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
|
||||
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
|
||||
- Fixed an issue with adding new machine policies and applying those same
|
||||
policies in the same state by adding a ``refresh_cache`` option to the
|
||||
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
|
||||
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
|
||||
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
|
||||
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
|
||||
- Fixes an issue in pkg.refresh_db on Windows where new package definition
|
||||
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
|
||||
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
|
||||
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
|
||||
- When using s3fs, if files are deleted from the bucket, they were not deleted in
|
||||
the master or minion local cache, which could lead to unexpected file copies or
|
||||
even state applications. This change makes the local cache consistent with the
|
||||
remote bucket by deleting files locally that are deleted from the bucket.
|
||||
|
||||
**NOTE** this could lead to **breakage** on your affected systems if it was
|
||||
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
|
||||
- Fixed an issue with file.directory state where paths would be modified in test
|
||||
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
|
||||
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
|
||||
- Fixed a issue with server channel where a minion's public key
|
||||
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
|
||||
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
|
||||
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
|
||||
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
|
||||
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
|
||||
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
|
||||
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
|
||||
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
|
||||
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
|
||||
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
|
||||
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
|
||||
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
|
||||
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
|
||||
|
||||
|
||||
### Added
|
||||
|
||||
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
|
||||
|
||||
|
||||
### Security
|
||||
|
||||
- Upgrade to `cryptography==42.0.5` due to a few security issues:
|
||||
|
||||
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
|
||||
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
|
||||
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
|
||||
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
|
||||
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
|
14
doc/topics/releases/templates/3006.8.md.template
Normal file
14
doc/topics/releases/templates/3006.8.md.template
Normal file
|
@ -0,0 +1,14 @@
|
|||
(release-3006.8)=
|
||||
# Salt 3006.8 release notes{{ unreleased }}
|
||||
{{ warning }}
|
||||
|
||||
<!--
|
||||
Add release specific details below
|
||||
-->
|
||||
|
||||
<!--
|
||||
Do not edit the changelog below.
|
||||
This is auto generated.
|
||||
-->
|
||||
## Changelog
|
||||
{{ changelog }}
|
29
noxfile.py
29
noxfile.py
|
@ -1865,32 +1865,25 @@ def ci_test_onedir_pkgs(session):
|
|||
]
|
||||
|
||||
chunks = {
|
||||
"install": [
|
||||
"tests/pytests/pkg/",
|
||||
],
|
||||
"install": [],
|
||||
"upgrade": [
|
||||
"--upgrade",
|
||||
"--no-uninstall",
|
||||
"tests/pytests/pkg/upgrade/",
|
||||
],
|
||||
"upgrade-classic": [
|
||||
"--upgrade",
|
||||
"--no-uninstall",
|
||||
"tests/pytests/pkg/upgrade/",
|
||||
],
|
||||
"downgrade": [
|
||||
"--downgrade",
|
||||
"--no-uninstall",
|
||||
"tests/pytests/pkg/downgrade/",
|
||||
],
|
||||
"downgrade-classic": [
|
||||
"--downgrade",
|
||||
"--no-uninstall",
|
||||
"tests/pytests/pkg/downgrade/",
|
||||
],
|
||||
"download-pkgs": [
|
||||
"--download-pkgs",
|
||||
"tests/pytests/pkg/download/",
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -1931,6 +1924,17 @@ def ci_test_onedir_pkgs(session):
|
|||
]
|
||||
+ session.posargs
|
||||
)
|
||||
append_tests_path = True
|
||||
test_paths = (
|
||||
"tests/pytests/pkg/",
|
||||
str(REPO_ROOT / "tests" / "pytests" / "pkg"),
|
||||
)
|
||||
for arg in session.posargs:
|
||||
if arg.startswith(test_paths):
|
||||
append_tests_path = False
|
||||
break
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
try:
|
||||
_pytest(session, coverage=False, cmd_args=pytest_args, env=env)
|
||||
except CommandFailed:
|
||||
|
@ -1954,6 +1958,8 @@ def ci_test_onedir_pkgs(session):
|
|||
]
|
||||
+ session.posargs
|
||||
)
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
_pytest(
|
||||
session,
|
||||
coverage=False,
|
||||
|
@ -1978,9 +1984,14 @@ def ci_test_onedir_pkgs(session):
|
|||
pytest_args.append("--use-prev-version")
|
||||
if chunk in ("upgrade-classic", "downgrade-classic"):
|
||||
pytest_args.append("--classic")
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
try:
|
||||
_pytest(session, coverage=False, cmd_args=pytest_args, env=env)
|
||||
except CommandFailed:
|
||||
if os.environ.get("RERUN_FAILURES", "0") == "0":
|
||||
# Don't rerun on failures
|
||||
return
|
||||
cmd_args = chunks["install"]
|
||||
pytest_args = (
|
||||
common_pytest_args[:]
|
||||
|
@ -1997,6 +2008,8 @@ def ci_test_onedir_pkgs(session):
|
|||
pytest_args.append("--use-prev-version")
|
||||
if chunk in ("upgrade-classic", "downgrade-classic"):
|
||||
pytest_args.append("--classic")
|
||||
if append_tests_path:
|
||||
pytest_args.append("tests/pytests/pkg/")
|
||||
_pytest(
|
||||
session,
|
||||
coverage=False,
|
||||
|
|
|
@ -1,3 +1,82 @@
|
|||
salt (3006.8) stable; urgency=medium
|
||||
|
||||
|
||||
# Removed
|
||||
|
||||
* Removed deprecated code scheduled to be removed on 2024-01-01:
|
||||
|
||||
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
|
||||
* All of the ``salt/log`` package.
|
||||
* The ``salt/modules/cassandra_mod.py`` module.
|
||||
* The ``salt/returners/cassandra_return.py`` returner.
|
||||
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
|
||||
|
||||
# Deprecated
|
||||
|
||||
* Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
|
||||
* Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
|
||||
* Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
|
||||
* The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
|
||||
|
||||
# Fixed
|
||||
|
||||
* ``user.add`` on Windows now allows you to add user names that contain all
|
||||
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
|
||||
* Fix an issue with the win_system module detecting established connections on
|
||||
non*Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
|
||||
* pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
|
||||
* Fixed an issue with adding new machine policies and applying those same
|
||||
policies in the same state by adding a ``refresh_cache`` option to the
|
||||
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
|
||||
* file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
|
||||
* Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
|
||||
* Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
|
||||
* Fixes an issue in pkg.refresh_db on Windows where new package definition
|
||||
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
|
||||
* Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
|
||||
* Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
|
||||
* When using s3fs, if files are deleted from the bucket, they were not deleted in
|
||||
the master or minion local cache, which could lead to unexpected file copies or
|
||||
even state applications. This change makes the local cache consistent with the
|
||||
remote bucket by deleting files locally that are deleted from the bucket.
|
||||
|
||||
**NOTE** this could lead to **breakage** on your affected systems if it was
|
||||
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
|
||||
* Fixed an issue with file.directory state where paths would be modified in test
|
||||
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
|
||||
* Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
|
||||
* Fixed a issue with server channel where a minion's public key
|
||||
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
|
||||
* Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
|
||||
* Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
|
||||
* Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
|
||||
* Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
|
||||
* Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
|
||||
* removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
|
||||
* Chocolatey: Make sure the return dictionary from ``chocolatey.version``
|
||||
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
|
||||
* fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
|
||||
* The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
|
||||
* Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
|
||||
* backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
|
||||
|
||||
# Added
|
||||
|
||||
* Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
|
||||
|
||||
# Security
|
||||
|
||||
* Upgrade to `cryptography==42.0.5` due to a few security issues:
|
||||
|
||||
* https://github.com/advisories/GHSA*9v9h-cgj8-h64p
|
||||
* https://github.com/advisories/GHSA*3ww4-gg4f-jr7f
|
||||
* https://github.com/advisories/GHSA*6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
|
||||
* Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
|
||||
* Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
|
||||
|
||||
|
||||
-- Salt Project Packaging <saltproject-packaging@vmware.com> Mon, 29 Apr 2024 03:18:46 +0000
|
||||
|
||||
salt (3007.0) stable; urgency=medium
|
||||
|
||||
|
||||
|
|
|
@ -646,6 +646,82 @@ if [ $1 -ge 1 ] ; then
|
|||
fi
|
||||
|
||||
%changelog
|
||||
* Mon Apr 29 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3006.8
|
||||
|
||||
# Removed
|
||||
|
||||
- Removed deprecated code scheduled to be removed on 2024-01-01:
|
||||
|
||||
* ``TemporaryLoggingHandler`` and ``QueueHandler`` in ``salt/_logging/handlers.py``
|
||||
* All of the ``salt/log`` package.
|
||||
* The ``salt/modules/cassandra_mod.py`` module.
|
||||
* The ``salt/returners/cassandra_return.py`` returner.
|
||||
* The ``salt/returners/django_return.py`` returner. [#66147](https://github.com/saltstack/salt/issues/66147)
|
||||
|
||||
# Deprecated
|
||||
|
||||
- Drop Fedora 37 and Fedora 38 support [#65860](https://github.com/saltstack/salt/issues/65860)
|
||||
- Drop CentOS Stream 8 and 9 from CI/CD [#66104](https://github.com/saltstack/salt/issues/66104)
|
||||
- Drop Photon OS 3 support [#66105](https://github.com/saltstack/salt/issues/66105)
|
||||
- The ``salt.utils.psutil_compat`` module has been deprecated and will be removed in Salt 3008. Please use the ``psutil`` module directly. [#66139](https://github.com/saltstack/salt/issues/66139)
|
||||
|
||||
# Fixed
|
||||
|
||||
- ``user.add`` on Windows now allows you to add user names that contain all
|
||||
numeric characters [#53363](https://github.com/saltstack/salt/issues/53363)
|
||||
- Fix an issue with the win_system module detecting established connections on
|
||||
non-Windows systems. Uses psutils instead of parsing the return of netstat [#60508](https://github.com/saltstack/salt/issues/60508)
|
||||
- pkg.refresh_db on Windows now honors saltenv [#61807](https://github.com/saltstack/salt/issues/61807)
|
||||
- Fixed an issue with adding new machine policies and applying those same
|
||||
policies in the same state by adding a ``refresh_cache`` option to the
|
||||
``lgpo.set`` state. [#62734](https://github.com/saltstack/salt/issues/62734)
|
||||
- file.managed correctly handles file path with '#' [#63060](https://github.com/saltstack/salt/issues/63060)
|
||||
- Fix master ip detection when DNS records change [#63654](https://github.com/saltstack/salt/issues/63654)
|
||||
- Fix user and group management on Windows to handle the Everyone group [#63667](https://github.com/saltstack/salt/issues/63667)
|
||||
- Fixes an issue in pkg.refresh_db on Windows where new package definition
|
||||
files were not being picked up on the first run [#63848](https://github.com/saltstack/salt/issues/63848)
|
||||
- Display a proper error when pki commands fail in the win_pki module [#64933](https://github.com/saltstack/salt/issues/64933)
|
||||
- Prevent full system upgrade on single package install for Arch Linux [#65200](https://github.com/saltstack/salt/issues/65200)
|
||||
- When using s3fs, if files are deleted from the bucket, they were not deleted in
|
||||
the master or minion local cache, which could lead to unexpected file copies or
|
||||
even state applications. This change makes the local cache consistent with the
|
||||
remote bucket by deleting files locally that are deleted from the bucket.
|
||||
|
||||
**NOTE** this could lead to **breakage** on your affected systems if it was
|
||||
inadvertently depending on previously deleted files. [#65611](https://github.com/saltstack/salt/issues/65611)
|
||||
- Fixed an issue with file.directory state where paths would be modified in test
|
||||
mode if backupname is used. [#66049](https://github.com/saltstack/salt/issues/66049)
|
||||
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
|
||||
- Fixed a issue with server channel where a minion's public key
|
||||
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
|
||||
- Fix content type backwards compatablity with http proxy post requests in the http utils module. [#66127](https://github.com/saltstack/salt/issues/66127)
|
||||
- Fix systemctl with "try-restart" instead of "retry-restart" within the RPM spec, properly restarting upgraded services [#66143](https://github.com/saltstack/salt/issues/66143)
|
||||
- Auto discovery of ssh, scp and ssh-keygen binaries. [#66205](https://github.com/saltstack/salt/issues/66205)
|
||||
- Add leading slash to salt helper file paths as per dh_links requirement [#66280](https://github.com/saltstack/salt/issues/66280)
|
||||
- Fixed x509.certificate_managed - ca_server did not return a certificate [#66284](https://github.com/saltstack/salt/issues/66284)
|
||||
- removed log line that did nothing. [#66289](https://github.com/saltstack/salt/issues/66289)
|
||||
- Chocolatey: Make sure the return dictionary from ``chocolatey.version``
|
||||
contains lowercase keys [#66290](https://github.com/saltstack/salt/issues/66290)
|
||||
- fix cacheing inline pillar, by not rendering inline pillar during cache save function. [#66292](https://github.com/saltstack/salt/issues/66292)
|
||||
- The file module correctly perserves file permissions on link target. [#66400](https://github.com/saltstack/salt/issues/66400)
|
||||
- Upgrade relenv to 0.16.0 and python to 3.10.14 [#66402](https://github.com/saltstack/salt/issues/66402)
|
||||
- backport the fix from #66164 to fix #65703. use OrderedDict to fix bad indexing. [#66705](https://github.com/saltstack/salt/issues/66705)
|
||||
|
||||
# Added
|
||||
|
||||
- Add Fedora 39 support [#65859](https://github.com/saltstack/salt/issues/65859)
|
||||
|
||||
# Security
|
||||
|
||||
- Upgrade to `cryptography==42.0.5` due to a few security issues:
|
||||
|
||||
* https://github.com/advisories/GHSA-9v9h-cgj8-h64p
|
||||
* https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
|
||||
* https://github.com/advisories/GHSA-6vqw-3v5j-54x4 [#66141](https://github.com/saltstack/salt/issues/66141)
|
||||
- Bump to `idna==3.7` due to https://github.com/advisories/GHSA-jjg7-2v4v-x38h [#66377](https://github.com/saltstack/salt/issues/66377)
|
||||
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
|
||||
|
||||
|
||||
* Sun Mar 03 2024 Salt Project Packaging <saltproject-packaging@vmware.com> - 3007.0
|
||||
|
||||
# Removed
|
||||
|
|
|
@ -13,7 +13,7 @@ click==8.1.3
|
|||
# towncrier
|
||||
incremental==22.10.0
|
||||
# via towncrier
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/py3.10/linux.txt
|
||||
# towncrier
|
||||
|
|
|
@ -190,7 +190,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -548,7 +548,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -58,7 +58,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/py3.10/linux.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/py3.10/linux.txt
|
||||
# -r requirements/static/ci/docs.in
|
||||
|
|
|
@ -189,7 +189,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -553,7 +553,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -213,7 +213,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -617,7 +617,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -22,7 +22,7 @@ charset-normalizer==3.2.0
|
|||
# via requests
|
||||
idna==3.7
|
||||
# via requests
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via -r requirements/static/ci/tools.in
|
||||
jmespath==1.0.1
|
||||
# via
|
||||
|
|
|
@ -189,7 +189,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -501,7 +501,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -13,7 +13,7 @@ click==8.1.3
|
|||
# towncrier
|
||||
incremental==17.5.0
|
||||
# via towncrier
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/py3.11/linux.txt
|
||||
# towncrier
|
||||
|
|
|
@ -187,7 +187,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -548,7 +548,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -62,7 +62,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/py3.11/linux.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/py3.11/linux.txt
|
||||
# -r requirements/static/ci/docs.in
|
||||
|
|
|
@ -186,7 +186,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -554,7 +554,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -208,7 +208,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -616,7 +616,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -22,7 +22,7 @@ charset-normalizer==3.2.0
|
|||
# via requests
|
||||
idna==3.7
|
||||
# via requests
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via -r requirements/static/ci/tools.in
|
||||
jmespath==1.0.1
|
||||
# via
|
||||
|
|
|
@ -186,7 +186,7 @@ jaraco.text==3.11.1
|
|||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||
# -r requirements/base.txt
|
||||
|
@ -501,7 +501,7 @@ websocket-client==0.40.0
|
|||
# kubernetes
|
||||
wempy==0.2.1
|
||||
# via -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# moto
|
||||
# pytest-httpserver
|
||||
|
|
|
@ -13,7 +13,7 @@ click==8.1.3
|
|||
# towncrier
|
||||
incremental==17.5.0
|
||||
# via towncrier
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/py3.12/linux.txt
|
||||
# towncrier
|
||||
|
|
|
@ -258,7 +258,7 @@ jaraco.text==3.11.1
|
|||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||
# -c requirements/static/ci/py3.12/linux.txt
|
||||
# jaraco.collections
|
||||
jinja2==3.1.3
|
||||
jinja2==3.1.4
|
||||
# via
|
||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||
# -c requirements/static/ci/py3.12/linux.txt
|
||||
|
@ -791,7 +791,7 @@ wempy==0.2.1
|
|||
# via
|
||||
# -c requirements/static/ci/py3.12/linux.txt
|
||||
# -r requirements/static/ci/common.in
|
||||
werkzeug==3.0.1
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# -c requirements/static/ci/py3.12/linux.txt
|
||||
# moto
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue