From b08ac042b6142428b04eb72edaf5a950ad194ec6 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 10 Dec 2024 16:21:07 -0700 Subject: [PATCH] drat release also requires tests --- .github/workflows/draft-release.yml | 49 ++++++++++++++++++- .github/workflows/staging.yml | 2 + .github/workflows/templates/staging.yml.jinja | 2 + 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 0840e3b0098..30472626225 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -33,7 +33,6 @@ jobs: - name: List Directory Structure run: ls -R artifacts/ - create-github-release: name: Download and list all artifacts runs-on: ubuntu-22.04 @@ -52,12 +51,60 @@ jobs: - name: Release Output run: echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> "$GITHUB_OUTPUT" + list-source-tarball: + name: Add Source Tarball to Release + needs: + - create-github-release + runs-on: ubuntu-22.04 + outputs: + upload_url: ${{ steps.list_files.outputs.files }} + steps: + - uses: actions/download-artifact@v4 + with: + name: salt-${{ inputs.salt-version }}.tar.gz + path: artifacts + - id: list-files + run: | + echo files=$(ls -l artifacts/| jq -Rn '[inputs | { file: "\(.)" }]') >> "$GITHUB_OUTPUT" + + upload-source-tarball: + name: Upload Source Tarball Artifacts + runs-on: ubunut-22.04 + needs: + - list-source-tarball + - create-github-release + strategy: + matrix: + include: ${{ fromJSON(needs.list-source-tarball.outputs.files) }} + steps: + - uses: actions/download-artifact@v4 + with: + name: salt-${{ inputs.salt-version }}.tar.gz + path: artifacts + + - id: file-type + run: echo "file_type=$( file --mime-type artifacts/${{ matrix.file }} )" >> "$GITHUB_OUTPUT" + + - name: Upload Source Tarball + id: upload-release-asset-source + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-github-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: artifacts/${{ matrix.file }} + asset_name: ${{ matrix.file }} + asset_content_type: ${{ steps.file-type.outputs.file_type }} + release-artifacts: name: Download and list all artifacts runs-on: ubuntu-22.04 needs: - create-github-release + strategy: + matrix: + ${{ fromJSON(inputs.matrix)['linux'] }} steps: - name: Echo upload url run: echo ${{ needs.create-github-release.outputs.upload_url }} diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index bd2e025c46e..d6b5a052c9a 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -657,6 +657,8 @@ jobs: - prepare-workflow - upload-release-artifacts - build-pkgs-onedir + - test-packages + - test uses: ./.github/workflows/draft-release.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index 6bb9e9e6980..77181679454 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -186,6 +186,8 @@ concurrency: - prepare-workflow - upload-release-artifacts - build-pkgs-onedir + - test-packages + - test <%- for need in test_salt_needs.iter(consume=True) %> - <{ need }> <%- endfor %>