diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d8aa27b6e0..902ee6470a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -240,7 +240,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['lint'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -258,7 +258,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -365,7 +365,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-docs'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -376,7 +376,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-source-tarball'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml new file mode 100644 index 00000000000..766342cf88c --- /dev/null +++ b/.github/workflows/draft-release.yml @@ -0,0 +1,33 @@ +--- +name: Draft Github Release + +on: + workflow_call: + inputs: + salt-version: + type: string + required: true + description: The Salt version to set prior to building packages. + matrix: + required: true + type: string + description: Json job matrix config + +env: + COLUMNS: 190 + PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} + PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} + PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} + PIP_DISABLE_PIP_VERSION_CHECK: "1" + +jobs: + + create-github-release: + name: Create Github Draft Release + runs-on: ubuntu-22.04 + steps: + # Checkout here so we can easily use custom actions + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + - name: List Directory Structure + run: ls -R diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e0d5efa3759..7f46fb2b5ee 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -289,7 +289,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['lint'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -307,7 +307,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -419,7 +419,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-docs'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -430,7 +430,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-source-tarball'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a0913db1ea..6c616a7ca53 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -254,25 +254,6 @@ jobs: run: | tools pkg repo publish release ${{ needs.prepare-workflow.outputs.salt-version }} - pkg-download-tests: - name: Package Downloads - if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} - needs: - - prepare-workflow - - build-ci-deps - - download-onedir-artifact - uses: ./.github/workflows/test-package-downloads-action.yml - with: - nox-session: ci-test-onedir - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - environment: release - nox-version: 2022.8.7 - python-version: "3.10" - skip-code-coverage: true - latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" - secrets: inherit - release: name: Release v${{ needs.prepare-workflow.outputs.salt-version }} if: ${{ always() && ! failure() && ! cancelled() }} @@ -284,7 +265,6 @@ jobs: - prepare-workflow - backup - publish-repositories - - pkg-download-tests environment: release steps: - name: Clone The Salt Repository @@ -448,7 +428,6 @@ jobs: - check-requirements - prepare-workflow - publish-repositories - - pkg-download-tests - release - publish-pypi - build-ci-deps diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index b6a4fa9fe86..16dc76940a3 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -279,7 +279,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['lint'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -297,7 +297,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -404,7 +404,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-docs'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -415,7 +415,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-source-tarball'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index c4cf136fe5f..36e5fabfc01 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -279,7 +279,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['lint'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -297,7 +297,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -405,7 +405,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-docs'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -416,7 +416,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-source-tarball'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release @@ -582,6 +582,7 @@ jobs: with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch path: artifacts/release + - name: Download Release Documentation (HTML) uses: actions/download-artifact@v4 with: @@ -592,25 +593,6 @@ jobs: run: | tree -a artifacts/release - pkg-download-tests: - name: Package Downloads - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] }} - needs: - - prepare-workflow - - build-ci-deps - - build-salt-onedir - uses: ./.github/workflows/test-package-downloads-action.yml - with: - nox-session: ci-test-onedir - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - environment: staging - nox-version: 2022.8.7 - python-version: "3.10" - skip-code-coverage: true - latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" - secrets: inherit - publish-pypi: name: Publish to PyPi(test) if: ${{ inputs.skip-test-pypi-publish != true && github.event.repository.fork != true }} @@ -618,7 +600,6 @@ jobs: - prepare-workflow - upload-release-artifacts - build-ci-deps - - pkg-download-tests environment: staging runs-on: - ubuntu-22.04 @@ -666,6 +647,16 @@ jobs: run: | tools pkg pypi-upload --test artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz + draft-release: + name: Draft Github Release + needs: + - prepare-workflow + - upload-release-artifacts + uses: ./.github/workflows/draft-release.yml + with: + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} + 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 @@ -683,7 +674,6 @@ jobs: - build-salt-onedir - build-pkgs-src - upload-release-artifacts - - pkg-download-tests - publish-pypi steps: - name: Get workflow information diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 08c6be4c409..38a7cec037c 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -29,7 +29,7 @@ lint: <%- do conclusion_needs.append('lint') %> name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -58,7 +58,7 @@ name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow steps: @@ -185,7 +185,7 @@ <{ job_name }>: <%- do conclusion_needs.append(job_name) %> name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - build-source-tarball @@ -202,7 +202,7 @@ <{ job_name }>: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - prepare-release diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index ccad8c7c95c..b1b5e574afe 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -278,10 +278,6 @@ permissions: run: | tools pkg repo publish <{ gh_environment }> ${{ needs.prepare-workflow.outputs.salt-version }} - <%- if includes.get("test-pkg-downloads", True) %> - <%- include "test-salt-pkg-repo-downloads.yml.jinja" %> - <%- endif %> - release: <%- do conclusion_needs.append('release') %> name: Release v${{ needs.prepare-workflow.outputs.salt-version }} diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index c3de71922e0..79e1503fdbd 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -91,13 +91,6 @@ concurrency: - ubuntu-22.04 steps: - uses: actions/checkout@v4 - {#- - - 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 @@ -110,14 +103,6 @@ concurrency: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch path: artifacts/release - {#- - - name: Download Source Repository - uses: actions/download-artifact@v4 - with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-src-repo - path: artifacts/release - - #} - name: Download Release Documentation (HTML) uses: actions/download-artifact@v4 with: @@ -128,35 +113,6 @@ concurrency: run: | tree -a artifacts/release - {#- - - - name: Download Release Documentation (PDF) - uses: actions/download-artifact@v4 - with: - name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.pdf - path: artifacts/release - - - - name: Upload Release Artifacts - run: | - tools release upload-artifacts ${{ needs.prepare-workflow.outputs.salt-version }} artifacts/release - - - - name: Upload PyPi Artifacts - uses: actions/upload-artifact@v4 - with: - name: pypi-artifacts - path: | - artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz - artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz.asc - retention-days: 7 - if-no-files-found: error - #} - - <%- if includes.get("test-pkg-downloads", True) %> - <%- include "test-salt-pkg-repo-downloads.yml.jinja" %> - <%- endif %> - publish-pypi: <%- do conclusion_needs.append('publish-pypi') %> name: Publish to PyPi(test) @@ -220,4 +176,23 @@ concurrency: run: | tools pkg pypi-upload --test artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz + draft-release: + name: Draft Github Release + needs: + - prepare-workflow + - upload-release-artifacts + <%- for need in test_salt_needs.iter(consume=True) %> + - <{ need }> + <%- endfor %> + <%- for need in test_salt_pkg_needs.iter(consume=True) %> + - <{ need }> + <%- endfor %> + <%- for need in test_repo_needs.iter(consume=True) %> + - <{ need }> + <%- endfor %> + uses: ./.github/workflows/draft-release.yml + with: + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} + <%- endblock jobs %>