Nightly (branch: master) #348
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Do not edit these workflows directly as the changes made will be overwritten. | |
# Instead, edit the template '.github/workflows/templates/nightly.yml.jinja' | |
--- | |
name: Nightly | |
run-name: "Nightly (branch: ${{ github.ref_name }})" | |
on: | |
workflow_dispatch: | |
inputs: | |
skip-salt-test-suite: | |
type: boolean | |
default: false | |
description: Skip running the Salt test suite. | |
skip-salt-pkg-test-suite: | |
type: boolean | |
default: false | |
description: Skip running the Salt packages test suite. | |
schedule: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule | |
- cron: '0 1 * * *' # Every day at 1AM | |
env: | |
COLUMNS: 190 | |
CACHE_SEED: SEED-3 # Bump the number to invalidate all caches | |
RELENV_DATA: "${{ github.workspace }}/.relenv" | |
permissions: | |
contents: read # for dorny/paths-filter to fetch a list of changed files | |
pull-requests: read # for dorny/paths-filter to read pull requests | |
actions: write # to trigger branch nightly builds | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.repository }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: false | |
jobs: | |
workflow-requirements: | |
name: Check Workflow Requirements | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} | |
outputs: | |
requirements-met: ${{ steps.check-requirements.outputs.requirements-met }} | |
steps: | |
- name: Check Requirements | |
id: check-requirements | |
run: | | |
if [ "${{ vars.RUN_SCHEDULED_BUILDS }}" = "1" ]; then | |
MSG="Running workflow because RUN_SCHEDULED_BUILDS=1" | |
echo "${MSG}" | |
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" | |
echo "requirements-met=true" >> "${GITHUB_OUTPUT}" | |
elif [ "${{ github.event.repository.fork }}" = "true" ]; then | |
MSG="Not running workflow because ${{ github.repository }} is a fork" | |
echo "${MSG}" | |
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" | |
echo "requirements-met=false" >> "${GITHUB_OUTPUT}" | |
else | |
MSG="Running workflow because ${{ github.repository }} is not a fork" | |
echo "${MSG}" | |
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" | |
echo "requirements-met=true" >> "${GITHUB_OUTPUT}" | |
fi | |
trigger-branch-nightly-builds: | |
name: Trigger Branch Workflows | |
if: ${{ github.event_name == 'schedule' && fromJSON(needs.workflow-requirements.outputs.requirements-met) }} | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} | |
needs: | |
- workflow-requirements | |
steps: | |
- name: Trigger 3006.x branch | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh workflow run nightly.yml --repo ${{ github.repository }} --ref 3006.x | |
prepare-workflow: | |
name: Prepare Workflow Run | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} | |
if: ${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }} | |
needs: | |
- workflow-requirements | |
outputs: | |
jobs: ${{ steps.define-jobs.outputs.jobs }} | |
runners: ${{ steps.runner-types.outputs.runners }} | |
changed-files: ${{ steps.process-changed-files.outputs.changed-files }} | |
pull-labels: ${{ steps.get-pull-labels.outputs.labels }} | |
testrun: ${{ steps.define-testrun.outputs.testrun }} | |
salt-version: ${{ steps.setup-salt-version.outputs.salt-version }} | |
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }} | |
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} | |
releases: ${{ steps.get-salt-releases.outputs.releases }} | |
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} | |
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Full clone to also get the tags to get the right salt version | |
- name: Get Changed Files | |
if: ${{ github.event_name == 'pull_request'}} | |
id: changed-files | |
uses: dorny/paths-filter@v2 | |
with: | |
token: ${{ github.token }} | |
list-files: json | |
filters: | | |
repo: | |
- added|modified: | |
- '**' | |
doc-requirements: | |
- added|modified: &doc_requirements | |
- requirements/static/ci/py3.*/docs.txt | |
lint-requirements: | |
- added|modified: &lint_requirements | |
- requirements/static/ci/py3.*/lint.txt | |
pkg_requirements: | |
- added|modified: &pkg_requirements | |
- requirements/static/pkg/py3.*/darwin.txt | |
- requirements/static/pkg/py3.*/linux.txt | |
- requirements/static/pkg/py3.*/freebsd.txt | |
- requirements/static/pkg/py3.*/windows.txt | |
test_requirements: | |
- added|modified: &test_requirements | |
- requirements/static/ci/py3.*/darwin.txt | |
- requirements/static/ci/py3.*/linux.txt | |
- requirements/static/ci/py3.*/freebsd.txt | |
- requirements/static/ci/py3.*/windows.txt | |
- requirements/static/ci/py3.*/darwin-crypto.txt | |
- requirements/static/ci/py3.*/linux-crypto.txt | |
- requirements/static/ci/py3.*/freebsd-crypto.txt | |
- requirements/static/ci/py3.*/windows-crypto.txt | |
deleted: | |
- deleted: | |
- '**' | |
docs: | |
- added|modified: | |
- doc/** | |
- *doc_requirements | |
workflows: | |
- added|modified: | |
- cicd/shared-gh-workflows-context.yml | |
- .github/actions/**/action.yml | |
- .github/workflows/*.yml | |
- .github/workflows/templates/*.yml.jinja2 | |
salt: | |
- added|modified: &salt_added_modified | |
- setup.py | |
- noxfile.py | |
- salt/**/*.py | |
- tasks/**/*.py | |
- tools/**/*.py | |
tests: | |
- added|modified: &tests_added_modified | |
- tests/**/*.py | |
lint: | |
- added|modified: | |
- .pylintrc | |
- *lint_requirements | |
golden_images: | |
- added|modified: | |
- cicd/golden-images.json | |
pkg_tests: | |
- added|modified: &pkg_tests_added_modified | |
- pkg/** | |
- *pkg_requirements | |
- *salt_added_modified | |
testrun: | |
- added|modified: | |
- *pkg_requirements | |
- *test_requirements | |
- *salt_added_modified | |
- *tests_added_modified | |
- *pkg_tests_added_modified | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- name: Pretty Print The GH Actions Event | |
run: | |
tools ci print-gh-event | |
- name: Set Cache Seed Output | |
id: set-cache-seed | |
run: | | |
tools ci define-cache-seed ${{ env.CACHE_SEED }} | |
- name: Setup Salt Version | |
id: setup-salt-version | |
uses: ./.github/actions/setup-salt-version | |
with: | |
salt-version: "" | |
validate-version: true | |
- name: Get Pull Request Test Labels | |
id: get-pull-labels | |
if: ${{ github.event_name == 'pull_request'}} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
tools ci get-pr-test-labels --repository ${{ github.repository }} | |
- name: Write Changed Files To A Local File | |
run: | |
echo '${{ toJSON(steps.changed-files.outputs) }}' > changed-files.json | |
- name: Check Local Changed Files Contents | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | |
cat changed-files.json | |
- name: Process Changed Files | |
id: process-changed-files | |
run: | | |
tools ci process-changed-files ${{ github.event_name }} changed-files.json | |
- name: Check Collected Changed Files | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo '${{ steps.process-changed-files.outputs.changed-files }}' | jq -C '.' | |
- name: Define Runner Types | |
id: runner-types | |
run: | | |
tools ci runner-types ${{ github.event_name }} | |
- name: Check Defined Runners | |
run: | | |
echo '${{ steps.runner-types.outputs.runners }}' | jq -C '.' | |
- name: Define Jobs | |
id: define-jobs | |
run: | | |
tools ci define-jobs${{ inputs.skip-salt-test-suite && ' --skip-tests' || '' }}${{ inputs.skip-salt-pkg-test-suite && ' --skip-pkg-tests' || '' }} ${{ github.event_name }} changed-files.json | |
- name: Check Defined Jobs | |
run: | | |
echo '${{ steps.define-jobs.outputs.jobs }}' | jq -C '.' | |
- name: Get Salt Releases | |
id: get-salt-releases | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
tools ci get-releases | |
- name: Get Latest Salt Releases for Testing | |
id: get-testing-releases | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} | |
- name: Check Salt Releases | |
run: | | |
echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' | |
echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' | |
echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' | |
- name: Define Testrun | |
id: define-testrun | |
run: | | |
tools ci define-testrun ${{ github.event_name }} changed-files.json | |
- name: Check Defined Test Run | |
run: | | |
echo '${{ steps.define-testrun.outputs.testrun }}' | jq -C '.' | |
- name: Check Contents of generated testrun-changed-files.txt | |
if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} | |
run: | | |
cat testrun-changed-files.txt || true | |
- name: Upload testrun-changed-files.txt | |
if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: testrun-changed-files.txt | |
path: testrun-changed-files.txt | |
- name: Get Release Changelog Target | |
id: get-release-changelog-target | |
run: | | |
tools ci get-release-changelog-target ${{ github.event_name }} | |
pre-commit: | |
name: Pre-Commit | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
uses: ./.github/workflows/pre-commit-action.yml | |
needs: | |
- prepare-workflow | |
with: | |
cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} | |
changed-files: ${{ needs.prepare-workflow.outputs.changed-files }} | |
pre-commit-version: "3.0.4" | |
lint: | |
name: Lint | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['lint'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
uses: ./.github/workflows/lint-action.yml | |
needs: | |
- prepare-workflow | |
with: | |
changed-files: ${{ needs.prepare-workflow.outputs.changed-files }} | |
prepare-release: | |
name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} | |
needs: | |
- prepare-workflow | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get Python Version | |
id: get-python-version | |
uses: ./.github/actions/get-python-version | |
with: | |
python-binary: python3 | |
- name: Setup Python Tools Scripts | |
id: python-tools-scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- name: Cache Python Tools Docs Virtualenv | |
uses: actions/cache@v3 | |
with: | |
path: .tools-venvs/docs | |
key: ${{ needs.prepare-workflow.outputs.cache-seed }}|${{ github.workflow }}|${{ github.job }}|tools-venvs|${{ steps.python-tools-scripts.outputs.version }}|docs|${{ steps.get-python-version.outputs.version }}|${{ hashFiles('requirements/**/docs.txt') }} | |
- name: Cache Python Tools Changelog Virtualenv | |
uses: actions/cache@v3 | |
with: | |
path: .tools-venvs/changelog | |
key: ${{ needs.prepare-workflow.outputs.cache-seed }}|${{ github.workflow }}|${{ github.job }}|tools-venvs|${{ steps.python-tools-scripts.outputs.version }}|changelog|${{ steps.get-python-version.outputs.version }}|${{ hashFiles('requirements/**/changelog.txt') }} | |
- name: Setup Salt Version | |
id: setup-salt-version | |
uses: ./.github/actions/setup-salt-version | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
- name: Update Debian changelog | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
tools changelog update-deb --draft | |
tools changelog update-deb | |
- name: Update RPM changelog | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
tools changelog update-rpm --draft | |
tools changelog update-rpm | |
- name: Create Release Notes Template | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then | |
tools changelog update-release-notes --next-release --template-only | |
else | |
tools changelog update-release-notes --template-only | |
fi | |
- name: Update Release Notes | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then | |
tools changelog update-release-notes --draft --next-release | |
tools changelog update-release-notes --next-release | |
else | |
tools changelog update-release-notes --draft | |
tools changelog update-release-notes | |
fi | |
- name: Generate MAN Pages | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
env: | |
LATEST_RELEASE: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
SALT_ON_SALTSTACK: "1" | |
run: | | |
tools docs man | |
- name: Update Changelog | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
tools changelog update-changelog-md --draft | |
tools changelog update-changelog-md | |
- name: Show Changes Diff | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
git diff --color | |
- name: Configure Git | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
git config --global user.name "Salt Project Packaging" | |
git config --global user.email [email protected] | |
- name: Setup Pre-Commit | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
uses: ./.github/actions/setup-pre-commit | |
with: | |
version: "3.0.4" | |
cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} | |
- name: Commit Changes | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
env: | |
SKIP: lint-salt,lint-tests | |
run: | | |
# Run it twice so that pre-commit can fix anything that can be automatically fixed. | |
git commit -am "Release v${{ needs.prepare-workflow.outputs.salt-version }}" || \ | |
git commit -am "Release v${{ needs.prepare-workflow.outputs.salt-version }}" | |
- name: Create release changes patch | |
shell: bash | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
run: | | |
git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch | |
- name: Upload Changes Diff Artifact | |
uses: actions/upload-artifact@v3 | |
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch | |
path: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch | |
retention-days: 7 | |
if-no-files-found: error | |
build-docs: | |
name: Documentation | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-docs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-source-tarball | |
uses: ./.github/workflows/build-docs.yml | |
with: | |
cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
build-source-tarball: | |
name: Build Source Tarball | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-source-tarball'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
needs: | |
- prepare-workflow | |
- prepare-release | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Get Python Version | |
id: get-python-version | |
uses: ./.github/actions/get-python-version | |
with: | |
python-binary: python3 | |
- name: Setup Python Tools Scripts | |
id: python-tools-scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- name: Setup Salt Version | |
id: setup-salt-version | |
uses: ./.github/actions/setup-salt-version | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
- name: Cache Python Tools Build Virtualenv | |
uses: actions/cache@v3 | |
with: | |
path: .tools-venvs/build | |
key: ${{ needs.prepare-workflow.outputs.cache-seed }}|${{ github.workflow }}|${{ github.job }}|tools-venvs|${{ steps.python-tools-scripts.outputs.version }}|build|${{ steps.get-python-version.outputs.version }}|${{ hashFiles('requirements/**/build.txt') }} | |
- name: Build Source Tarball | |
uses: ./.github/actions/build-source-tarball | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
build-deps-onedir: | |
name: Build Dependencies Onedir | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
uses: ./.github/workflows/build-deps-onedir.yml | |
with: | |
cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
build-salt-onedir: | |
name: Build Salt Onedir | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} | |
needs: | |
- prepare-workflow | |
- build-deps-onedir | |
- build-source-tarball | |
uses: ./.github/workflows/build-salt-onedir.yml | |
with: | |
cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
build-rpm-pkgs: | |
name: Build RPM Packages | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/build-rpm-packages.yml | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
build-deb-pkgs: | |
name: Build DEB Packages | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/build-deb-packages.yml | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
build-windows-pkgs: | |
name: Build Windows Packages | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/build-windows-packages.yml | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
environment: nightly | |
sign-packages: false | |
secrets: inherit | |
build-macos-pkgs: | |
name: Build macOS Packages | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/build-macos-packages.yml | |
with: | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
relenv-version: "0.13.4" | |
python-version: "3.10.12" | |
environment: nightly | |
sign-packages: true | |
secrets: inherit | |
amazonlinux-2-pkg-tests: | |
name: Amazon Linux 2 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: amazonlinux-2 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
centos-7-pkg-tests: | |
name: CentOS 7 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: centos-7 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
centosstream-8-pkg-tests: | |
name: CentOS Stream 8 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: centosstream-8 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
centosstream-9-pkg-tests: | |
name: CentOS Stream 9 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: centosstream-9 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
debian-10-pkg-tests: | |
name: Debian 10 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: debian-10 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
debian-11-pkg-tests: | |
name: Debian 11 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: debian-11 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
debian-11-arm64-pkg-tests: | |
name: Debian 11 Arm64 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: debian-11-arm64 | |
platform: linux | |
arch: aarch64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
photonos-3-pkg-tests: | |
name: Photon OS 3 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: photonos-3 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
photonos-4-pkg-tests: | |
name: Photon OS 4 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: photonos-4 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: rpm | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
ubuntu-2004-pkg-tests: | |
name: Ubuntu 20.04 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: ubuntu-20.04 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
ubuntu-2004-arm64-pkg-tests: | |
name: Ubuntu 20.04 Arm64 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: ubuntu-20.04-arm64 | |
platform: linux | |
arch: aarch64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
ubuntu-2204-pkg-tests: | |
name: Ubuntu 22.04 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: ubuntu-22.04 | |
platform: linux | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
ubuntu-2204-arm64-pkg-tests: | |
name: Ubuntu 22.04 Arm64 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: ubuntu-22.04-arm64 | |
platform: linux | |
arch: aarch64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: deb | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
macos-12-pkg-tests: | |
name: macOS 12 Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-macos-pkgs | |
uses: ./.github/workflows/test-packages-action-macos.yml | |
with: | |
distro-slug: macos-12 | |
platform: darwin | |
arch: x86_64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: macos | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2016-nsis-pkg-tests: | |
name: Windows 2016 NSIS Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2016 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: NSIS | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2016-msi-pkg-tests: | |
name: Windows 2016 MSI Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2016 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: MSI | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2019-nsis-pkg-tests: | |
name: Windows 2019 NSIS Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2019 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: NSIS | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2019-msi-pkg-tests: | |
name: Windows 2019 MSI Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2019 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: MSI | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2022-nsis-pkg-tests: | |
name: Windows 2022 NSIS Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2022 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: NSIS | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2022-msi-pkg-tests: | |
name: Windows 2022 MSI Package Tests | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
uses: ./.github/workflows/test-packages-action.yml | |
with: | |
distro-slug: windows-2022 | |
platform: windows | |
arch: amd64 | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
pkg-type: MSI | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} | |
windows-2016: | |
name: Windows 2016 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: windows-2016 | |
nox-session: ci-test-onedir | |
platform: windows | |
arch: amd64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
windows-2019: | |
name: Windows 2019 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: windows-2019 | |
nox-session: ci-test-onedir | |
platform: windows | |
arch: amd64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
windows-2022: | |
name: Windows 2022 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: windows-2022 | |
nox-session: ci-test-onedir | |
platform: windows | |
arch: amd64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
macos-12: | |
name: macOS 12 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action-macos.yml | |
with: | |
distro-slug: macos-12 | |
nox-session: ci-test-onedir | |
platform: darwin | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
almalinux-8: | |
name: Alma Linux 8 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: almalinux-8 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
almalinux-9: | |
name: Alma Linux 9 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: almalinux-9 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
amazonlinux-2: | |
name: Amazon Linux 2 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: amazonlinux-2 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
archlinux-lts: | |
name: Arch Linux LTS | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: archlinux-lts | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
centos-7: | |
name: CentOS 7 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: centos-7 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
centosstream-8: | |
name: CentOS Stream 8 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: centosstream-8 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
centosstream-9: | |
name: CentOS Stream 9 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: centosstream-9 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
debian-10: | |
name: Debian 10 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: debian-10 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
debian-11: | |
name: Debian 11 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: debian-11 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
debian-11-arm64: | |
name: Debian 11 Arm64 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: debian-11-arm64 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: aarch64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
fedora-37: | |
name: Fedora 37 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: fedora-37 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
fedora-38: | |
name: Fedora 38 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: fedora-38 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
opensuse-15: | |
name: Opensuse 15 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: opensuse-15 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
photonos-3: | |
name: Photon OS 3 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: photonos-3 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
photonos-4: | |
name: Photon OS 4 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: photonos-4 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
ubuntu-2004: | |
name: Ubuntu 20.04 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: ubuntu-20.04 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
ubuntu-2004-arm64: | |
name: Ubuntu 20.04 Arm64 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: ubuntu-20.04-arm64 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: aarch64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
ubuntu-2204: | |
name: Ubuntu 22.04 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: ubuntu-22.04 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: x86_64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
ubuntu-2204-arm64: | |
name: Ubuntu 22.04 Arm64 | |
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
uses: ./.github/workflows/test-action.yml | |
with: | |
distro-slug: ubuntu-22.04-arm64 | |
nox-session: ci-test-onedir | |
platform: linux | |
arch: aarch64 | |
testrun: ${{ needs.prepare-workflow.outputs.testrun }} | |
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" | |
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.12 | |
skip-code-coverage: false | |
skip-junit-reports: false | |
build-src-repo: | |
name: Build Source Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download Source Tarball | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
run: | | |
tools pkg repo create src --key-id=64CBBC8173D76B3F --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Copy Files For Source Only Artifact Uploads | |
run: | | |
mkdir artifacts/src | |
find artifacts/pkgs/repo -type f -print -exec cp {} artifacts/src \; | |
- name: Upload Standalone Repository As An Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-src-repo | |
path: | | |
artifacts/src/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz | |
artifacts/src/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz.* | |
artifacts/src/*-GPG-* | |
retention-days: 7 | |
if-no-files-found: error | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: src-repo | |
build-deb-repo: | |
name: Build DEB Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-deb-pkgs | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- distro: debian | |
version: "10" | |
arch: x86_64 | |
- distro: debian | |
version: "10" | |
arch: aarch64 | |
- distro: debian | |
version: "11" | |
arch: x86_64 | |
- distro: debian | |
version: "11" | |
arch: aarch64 | |
- distro: ubuntu | |
version: "20.04" | |
arch: x86_64 | |
- distro: ubuntu | |
version: "20.04" | |
arch: aarch64 | |
- distro: ubuntu | |
version: "22.04" | |
arch: x86_64 | |
- distro: ubuntu | |
version: "22.04" | |
arch: aarch64 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download System Dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y devscripts apt-utils | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download DEB Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-deb | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
run: | | |
tools pkg repo create deb --key-id=64CBBC8173D76B3F --distro-arch=${{ matrix.arch }} --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--distro=${{ matrix.distro }} --distro-version=${{ matrix.version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-repo | |
build-rpm-repo: | |
name: Build RPM Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-rpm-pkgs | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- distro: amazon | |
version: "2" | |
arch: x86_64 | |
- distro: amazon | |
version: "2" | |
arch: aarch64 | |
- distro: redhat | |
version: "7" | |
arch: x86_64 | |
- distro: redhat | |
version: "7" | |
arch: aarch64 | |
- distro: redhat | |
version: "8" | |
arch: x86_64 | |
- distro: redhat | |
version: "8" | |
arch: aarch64 | |
- distro: redhat | |
version: "9" | |
arch: x86_64 | |
- distro: redhat | |
version: "9" | |
arch: aarch64 | |
- distro: fedora | |
version: "36" | |
arch: x86_64 | |
- distro: fedora | |
version: "36" | |
arch: aarch64 | |
- distro: fedora | |
version: "37" | |
arch: x86_64 | |
- distro: fedora | |
version: "37" | |
arch: aarch64 | |
- distro: fedora | |
version: "38" | |
arch: x86_64 | |
- distro: fedora | |
version: "38" | |
arch: aarch64 | |
- distro: photon | |
version: "3" | |
arch: x86_64 | |
- distro: photon | |
version: "3" | |
arch: aarch64 | |
- distro: photon | |
version: "4" | |
arch: x86_64 | |
- distro: photon | |
version: "4" | |
arch: aarch64 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download System Dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y rpm | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download RPM Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
env: | |
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' }} | |
run: | | |
tools pkg repo create rpm --key-id=64CBBC8173D76B3F --distro-arch=${{ matrix.arch }} --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--distro=${{ matrix.distro }} --distro-version=${{ matrix.version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-repo | |
build-windows-repo: | |
name: Build Windows Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-windows-pkgs | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download Windows NSIS x86 Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-NSIS | |
path: artifacts/pkgs/incoming | |
- name: Download Windows MSI x86 Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-MSI | |
path: artifacts/pkgs/incoming | |
- name: Download Windows NSIS amd64 Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-NSIS | |
path: artifacts/pkgs/incoming | |
- name: Download Windows MSI amd64 Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-MSI | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
run: | | |
tools pkg repo create windows --key-id=64CBBC8173D76B3F --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: windows-repo | |
build-macos-repo: | |
name: Build macOS Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-macos-pkgs | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download macOS x86_64 Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86_64-macos | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
run: | | |
tools pkg repo create macos --key-id=64CBBC8173D76B3F --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: macos-repo | |
build-onedir-repo: | |
name: Build Onedir Repository | |
environment: nightly | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
needs: | |
- prepare-workflow | |
- build-salt-onedir | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- 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: Download Linux x86_64 Onedir Archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz | |
path: artifacts/pkgs/incoming | |
- name: Download Linux aarch64 Onedir Archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-aarch64.tar.xz | |
path: artifacts/pkgs/incoming | |
- name: Download macOS x86_64 Onedir Archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-x86_64.tar.xz | |
path: artifacts/pkgs/incoming | |
- name: Download Windows amd64 Onedir Archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.tar.xz | |
path: artifacts/pkgs/incoming | |
- name: Download Windows amd64 Onedir Archive(zip) | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.zip | |
path: artifacts/pkgs/incoming | |
- name: Download Windows x86 Onedir Archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.tar.xz | |
path: artifacts/pkgs/incoming | |
- name: Download Windows amd64 Onedir Archive(zip) | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.zip | |
path: artifacts/pkgs/incoming | |
- name: Setup GnuPG | |
run: | | |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg | |
GNUPGHOME="$(mktemp -d -p /run/gpg)" | |
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV" | |
cat <<EOF > "${GNUPGHOME}/gpg.conf" | |
batch | |
no-tty | |
pinentry-mode loopback | |
EOF | |
- name: Get Secrets | |
env: | |
SECRETS_KEY: ${{ secrets.SECRETS_KEY }} | |
run: | | |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX) | |
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE" | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text | jq .default_key -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \ | |
| gpg --import - | |
sync | |
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \ | |
--query SecretString --output text| jq .default_passphrase -r | base64 -d \ | |
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d - | |
sync | |
rm "$SECRETS_KEY_FILE" | |
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf" | |
- name: Create Repository Path | |
run: | | |
mkdir -p artifacts/pkgs/repo | |
- name: Create Repository | |
run: | | |
tools pkg repo create onedir --key-id=64CBBC8173D76B3F --nightly-build-from=${{ github.ref_name }} \ | |
--salt-version=${{ needs.prepare-workflow.outputs.salt-version }} \ | |
--incoming=artifacts/pkgs/incoming --repo-path=artifacts/pkgs/repo | |
- name: Upload Repository As An Artifact | |
uses: ./.github/actions/upload-artifact | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: artifacts/pkgs/repo/* | |
retention-days: 7 | |
if-no-files-found: error | |
archive-name: onedir-repo | |
publish-repositories: | |
name: Publish Repositories | |
if: ${{ always() && ! failure() && ! cancelled() }} | |
runs-on: | |
- self-hosted | |
- linux | |
- repo-nightly | |
environment: nightly | |
needs: | |
- prepare-workflow | |
- build-src-repo | |
- build-deb-repo | |
- build-rpm-repo | |
- build-windows-repo | |
- build-macos-repo | |
- build-onedir-repo | |
- windows-2016 | |
- windows-2019 | |
- windows-2022 | |
- macos-12 | |
- almalinux-8 | |
- almalinux-9 | |
- amazonlinux-2 | |
- archlinux-lts | |
- centos-7 | |
- centosstream-8 | |
- centosstream-9 | |
- debian-10 | |
- debian-11 | |
- debian-11-arm64 | |
- fedora-37 | |
- fedora-38 | |
- opensuse-15 | |
- photonos-3 | |
- photonos-4 | |
- ubuntu-2004 | |
- ubuntu-2004-arm64 | |
- ubuntu-2204 | |
- ubuntu-2204-arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
- 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: Setup Python Tools Scripts | |
uses: ./.github/actions/setup-python-tools-scripts | |
- name: Download Repository Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo | |
path: repo/ | |
- name: Decompress Repository Artifacts | |
run: | | |
find repo/ -type f -name '*.tar.gz' -print -exec tar xvf {} \; | |
find repo/ -type f -name '*.tar.gz' -print -exec rm -f {} \; | |
- name: Show Repository | |
run: | | |
tree -a artifacts/pkgs/repo/ | |
- name: Upload Repository Contents (nightly) | |
env: | |
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' }} | |
run: | | |
tools pkg repo publish nightly --salt-version=${{ needs.prepare-workflow.outputs.salt-version }} artifacts/pkgs/repo/ | |
set-pipeline-exit-status: | |
# This step is just so we can make github require this step, to pass checks | |
# on a pull request instead of requiring all | |
name: Set the ${{ github.workflow }} Pipeline Exit Status | |
if: always() | |
runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} | |
environment: nightly | |
needs: | |
- workflow-requirements | |
- trigger-branch-nightly-builds | |
- prepare-workflow | |
- pre-commit | |
- lint | |
- build-docs | |
- build-deps-onedir | |
- build-salt-onedir | |
- publish-repositories | |
- amazonlinux-2-pkg-tests | |
- centos-7-pkg-tests | |
- centosstream-8-pkg-tests | |
- centosstream-9-pkg-tests | |
- debian-10-pkg-tests | |
- debian-11-pkg-tests | |
- debian-11-arm64-pkg-tests | |
- photonos-3-pkg-tests | |
- photonos-4-pkg-tests | |
- ubuntu-2004-pkg-tests | |
- ubuntu-2004-arm64-pkg-tests | |
- ubuntu-2204-pkg-tests | |
- ubuntu-2204-arm64-pkg-tests | |
- macos-12-pkg-tests | |
- windows-2016-nsis-pkg-tests | |
- windows-2016-msi-pkg-tests | |
- windows-2019-nsis-pkg-tests | |
- windows-2019-msi-pkg-tests | |
- windows-2022-nsis-pkg-tests | |
- windows-2022-msi-pkg-tests | |
steps: | |
- name: Get workflow information | |
id: get-workflow-info | |
uses: technote-space/workflow-conclusion-action@v3 | |
- name: Notify Slack | |
id: slack | |
if: always() | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"attachments": [ | |
{ | |
"fallback": "${{ github.workflow }} Workflow build result for the `${{ github.ref_name }}` branch(attempt: ${{ github.run_attempt }}): `${{ steps.get-workflow-info.outputs.conclusion }}`\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", | |
"color": "${{ steps.get-workflow-info.outputs.conclusion != 'success' && 'ff3d00' || '00e676' }}", | |
"fields": [ | |
{ | |
"title": "Workflow", | |
"short": true, | |
"value": "${{ github.workflow }}", | |
"type": "mrkdwn" | |
}, | |
{ | |
"title": "Workflow Run", | |
"short": true, | |
"value": "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>", | |
"type": "mrkdwn" | |
}, | |
{ | |
"title": "Branch", | |
"short": true, | |
"value": "${{ github.ref_name }}", | |
"type": "mrkdwn" | |
}, | |
{ | |
"title": "Commit", | |
"short": true, | |
"value": "<${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>", | |
"type": "mrkdwn" | |
}, | |
{ | |
"title": "Attempt", | |
"short": true, | |
"value": "${{ github.run_attempt }}", | |
"type": "mrkdwn" | |
}, | |
{ | |
"title": "Status", | |
"short": true, | |
"value": "${{ steps.get-workflow-info.outputs.conclusion }}", | |
"type": "mrkdwn" | |
} | |
], | |
"author_name": "${{ github.event.sender.login }}", | |
"author_link": "${{ github.event.sender.html_url }}", | |
"author_icon": "${{ github.event.sender.avatar_url }}" | |
} | |
] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
- name: Set Pipeline Exit Status | |
shell: bash | |
run: | | |
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then | |
exit 1 | |
else | |
exit 0 | |
fi | |
- name: Done | |
if: always() | |
run: | |
echo "All worflows finished" |