mirror of https://github.com/pallets/flask.git
70 lines
2.4 KiB
YAML
70 lines
2.4 KiB
YAML
name: Publish
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
hash: ${{ steps.hash.outputs.hash }}
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
|
|
with:
|
|
python-version: '3.x'
|
|
cache: pip
|
|
cache-dependency-path: requirements*/*.txt
|
|
- run: pip install -r requirements/build.txt
|
|
# Use the commit date instead of the current date during the build.
|
|
- run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
|
|
- run: python -m build
|
|
# Generate hashes used for provenance.
|
|
- name: generate hash
|
|
id: hash
|
|
run: cd dist && echo "hash=$(sha256sum * | base64 -w0)" >> $GITHUB_OUTPUT
|
|
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
with:
|
|
path: ./dist
|
|
provenance:
|
|
needs: [build]
|
|
permissions:
|
|
actions: read
|
|
id-token: write
|
|
contents: write
|
|
# Can't pin with hash due to how this workflow works.
|
|
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
|
|
with:
|
|
base64-subjects: ${{ needs.build.outputs.hash }}
|
|
create-release:
|
|
# Upload the sdist, wheels, and provenance to a GitHub release. They remain
|
|
# available as build artifacts for a while as well.
|
|
needs: [provenance]
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
|
|
- name: create release
|
|
run: >
|
|
gh release create --draft --repo ${{ github.repository }}
|
|
${{ github.ref_name }}
|
|
*.intoto.jsonl/* artifact/*
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
publish-pypi:
|
|
needs: [provenance]
|
|
# Wait for approval before attempting to upload to PyPI. This allows reviewing the
|
|
# files in the draft release.
|
|
environment:
|
|
name: publish
|
|
url: https://pypi.org/project/Flask/${{ github.ref_name }}
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
id-token: write
|
|
steps:
|
|
- uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
|
|
- uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
|
|
with:
|
|
packages-dir: artifact/
|