Skip to content

Commit 9389003

Browse files
add zizmor
1 parent cd4566f commit 9389003

5 files changed

Lines changed: 141 additions & 74 deletions

File tree

.github/workflows/release.yml

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,27 @@ on:
55
tags:
66
- "v*"
77

8-
permissions:
9-
id-token: write
10-
contents: write
11-
128
jobs:
139
# Build and publish to GitHub, Cloudsmith (zipapp + Docker)
1410
build:
1511
name: Build and publish artifacts
1612
runs-on: ubuntu-latest
13+
permissions:
14+
id-token: write
15+
contents: write
16+
env:
17+
CLOUDSMITH_NAMESPACE: ${{ vars.CLOUDSMITH_NAMESPACE }}
18+
CLOUDSMITH_SVC_SLUG: ${{ vars.CLOUDSMITH_SVC_SLUG }}
19+
DOCKERHUB_USER: ${{ vars.DOCKERHUB_USER }}
1720
steps:
18-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
22+
with:
23+
persist-credentials: false
1924

2025
- name: Set up Python 3.10
21-
uses: actions/setup-python@v5
26+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
2227
with:
2328
python-version: '3.10'
24-
cache: 'pip'
2529

2630
- name: Install build dependencies
2731
run: |
@@ -35,7 +39,7 @@ jobs:
3539
- name: Create multi-platform Zipapp with PEX
3640
run: |
3741
pex . \
38-
--output-file cloudsmith-${{ env.VERSION }}.pyz \
42+
--output-file "cloudsmith-${VERSION}.pyz" \
3943
--console-script cloudsmith \
4044
--python-shebang "/usr/bin/env python3" \
4145
--venv \
@@ -70,82 +74,75 @@ jobs:
7074
--complete-platform .github/.platforms/macos-arm64-py314.json \
7175
--complete-platform .github/.platforms/windows-x86_64-py314.json
7276
73-
- name: Create Release
74-
id: create_release
75-
uses: actions/create-release@v1
76-
env:
77-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77+
- name: Create Release and Upload Asset
78+
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
7879
with:
79-
tag_name: v${{ env.VERSION }}
80-
release_name: Release v${{ env.VERSION }}
81-
draft: false
82-
prerelease: false
83-
84-
- name: Upload Release Asset
85-
id: upload-release-asset
86-
uses: actions/upload-release-asset@v1
80+
name: Release v${{ env.VERSION }}
81+
files: ./cloudsmith-${{ env.VERSION }}.pyz
8782
env:
8883
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89-
with:
90-
upload_url: ${{ steps.create_release.outputs.upload_url }}
91-
asset_path: ./cloudsmith-${{ env.VERSION }}.pyz
92-
asset_name: cloudsmith-${{ env.VERSION }}.pyz
93-
asset_content_type: application/zip
9484

9585
- name: Install and authenticate Cloudsmith CLI
96-
uses: cloudsmith-io/cloudsmith-cli-action@v1
86+
uses: cloudsmith-io/cloudsmith-cli-action@d8a6f3fe4d45eaee8e8fafae7230e808e1c7f8ab # v2.0.0
9787
with:
9888
oidc-namespace: ${{ vars.CLOUDSMITH_NAMESPACE }}
9989
oidc-service-slug: ${{ vars.CLOUDSMITH_SVC_SLUG }}
10090

10191
- name: Push Zipapp to Cloudsmith
10292
id: push_zipapp
103-
run: cloudsmith push raw ${{ vars.CLOUDSMITH_NAMESPACE }}/cli-zipapp ./cloudsmith-${{ env.VERSION }}.pyz --name cloudsmith-cli --version ${{ env.VERSION }}
93+
run: cloudsmith push raw "${CLOUDSMITH_NAMESPACE}/cli-zipapp" "./cloudsmith-${VERSION}.pyz" --name cloudsmith-cli --version "${VERSION}"
10494

10595
- name: Build Python packages
10696
run: python setup.py sdist bdist_wheel
10797

10898
- name: Push source distribution to Cloudsmith
109-
run: cloudsmith push python ${{ vars.CLOUDSMITH_NAMESPACE }}/cli dist/cloudsmith-cli-${{ env.VERSION }}.tar.gz
99+
run: cloudsmith push python "${CLOUDSMITH_NAMESPACE}/cli" "dist/cloudsmith-cli-${VERSION}.tar.gz"
110100

111101
- name: Push wheel to Cloudsmith
112-
run: cloudsmith push python ${{ vars.CLOUDSMITH_NAMESPACE }}/cli dist/cloudsmith_cli-${{ env.VERSION }}-py3-none-any.whl
102+
run: cloudsmith push python "${CLOUDSMITH_NAMESPACE}/cli" "dist/cloudsmith_cli-${VERSION}-py3-none-any.whl"
113103

114104
- name: Set up QEMU for multi-arch
115-
uses: docker/setup-qemu-action@v3
105+
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
116106

117107
- name: Set up Docker Buildx
118-
uses: docker/setup-buildx-action@v3
108+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
119109

120110
- name: Push Dockerised CLI to Cloudsmith (multi-arch)
121111
id: push_dockerised_cli_cloudsmith
122112
run: |
123-
echo "${CLOUDSMITH_API_KEY}" | docker login docker.cloudsmith.io -u ${{ vars.CLOUDSMITH_SVC_SLUG }} --password-stdin
113+
echo "${CLOUDSMITH_API_KEY}" | docker login docker.cloudsmith.io -u "${CLOUDSMITH_SVC_SLUG}" --password-stdin
124114
docker buildx build \
125115
--platform linux/amd64,linux/arm64 \
126-
--build-arg CLOUDSMITH_CLI_VERSION=${{ env.VERSION }} \
127-
-t docker.cloudsmith.io/${{ vars.CLOUDSMITH_NAMESPACE }}/cli-zipapp/cloudsmith-cli:${{ env.VERSION }} \
116+
--build-arg "CLOUDSMITH_CLI_VERSION=${VERSION}" \
117+
-t "docker.cloudsmith.io/${CLOUDSMITH_NAMESPACE}/cli-zipapp/cloudsmith-cli:${VERSION}" \
128118
--push .
129119
130120
- name: Push Dockerised CLI to DockerHub (multi-arch)
131121
id: push_dockerised_cli_dockerhub
122+
env:
123+
DOCKERHUB_PAT: ${{ secrets.DOCKERHUB_PAT }}
132124
run: |
133-
echo "${{ secrets.DOCKERHUB_PAT }}" | docker login -u ${{ vars.DOCKERHUB_USER }} --password-stdin
125+
echo "${DOCKERHUB_PAT}" | docker login -u "${DOCKERHUB_USER}" --password-stdin
134126
docker buildx build \
135127
--platform linux/amd64,linux/arm64 \
136-
--build-arg CLOUDSMITH_CLI_VERSION=${{ env.VERSION }} \
137-
-t cloudsmith/cloudsmith-cli:${{ env.VERSION }} \
128+
--build-arg "CLOUDSMITH_CLI_VERSION=${VERSION}" \
129+
-t "cloudsmith/cloudsmith-cli:${VERSION}" \
138130
--push .
139131
140132
# Publish Python packages to PyPI
141133
publish-pypi:
142134
name: Publish to PyPI
143135
runs-on: ubuntu-latest
136+
permissions:
137+
id-token: write
138+
contents: read
144139
steps:
145-
- uses: actions/checkout@v4
140+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
141+
with:
142+
persist-credentials: false
146143

147144
- name: Set up Python 3.10
148-
uses: actions/setup-python@v5
145+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
149146
with:
150147
python-version: '3.10'
151148

@@ -158,6 +155,6 @@ jobs:
158155
run: python setup.py sdist bdist_wheel
159156

160157
- name: Publish to PyPI
161-
uses: pypa/gh-action-pypi-publish@release/v1
158+
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # release/v1
162159
with:
163160
packages-dir: dist/

0 commit comments

Comments
 (0)