From 08e9d12137ef23a11c066ebbb323373eb0f6eceb Mon Sep 17 00:00:00 2001 From: messense Date: Thu, 16 Feb 2023 01:07:47 +0800 Subject: [PATCH] Upload `ruff` binaries to GitHub release (#2930) --- .github/workflows/ruff.yaml | 131 +++++++++++++++++++++++++++++++++--- 1 file changed, 122 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ruff.yaml b/.github/workflows/ruff.yaml index 81c42b7ae3..80e1767765 100644 --- a/.github/workflows/ruff.yaml +++ b/.github/workflows/ruff.yaml @@ -41,6 +41,19 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-x86_64-apple-darwin.tar.gz + tar czvf $ARCHIVE_FILE -C target/x86_64-apple-darwin/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 + macos-universal: runs-on: macos-latest steps: @@ -63,26 +76,45 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-aarch64-apple-darwin.tar.gz + tar czvf $ARCHIVE_FILE -C target/aarch64-apple-darwin/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 windows: runs-on: windows-latest strategy: matrix: - target: [x64, x86] + platform: + - target: x86_64-pc-windows-msvc + arch: x64 + - target: i686-pc-windows-msvc + arch: x86 + - target: aarch64-pc-windows-msvc + arch: x64 steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_VERSION }} - architecture: ${{ matrix.target }} + architecture: ${{ matrix.platform.arch }} - name: "Prep README.md" run: python scripts/transform_readme.py --target pypi - name: "Build wheels" uses: PyO3/maturin-action@v1 with: - target: ${{ matrix.target }} + target: ${{ matrix.platform.target }} args: --release --out dist - name: "Install built wheel" + if: ${{ !startsWith(matrix.platform.target, 'aarch64') }} shell: bash run: | python -m pip install dist/${{ env.PACKAGE_NAME }}-*.whl --force-reinstall @@ -91,12 +123,27 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + shell: bash + run: | + ARCHIVE_FILE=ruff-${{ matrix.platform.target }}.zip + 7z a $ARCHIVE_FILE ./target/${{ matrix.platform.target }}/release/ruff.exe + sha256sum $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.zip + *.sha256 linux: runs-on: ubuntu-latest strategy: matrix: - target: [x86_64, i686] + target: + - x86_64-unknown-linux-gnu + - i686-unknown-linux-gnu steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 @@ -112,7 +159,7 @@ jobs: manylinux: auto args: --release --out dist - name: "Install built wheel" - if: matrix.target == 'x86_64' + if: ${{ startsWith(matrix.target, 'x86_64') }} run: | pip install dist/${{ env.PACKAGE_NAME }}-*.whl --force-reinstall - name: "Upload wheels" @@ -120,12 +167,34 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-${{ matrix.target }}.tar.gz + tar czvf $ARCHIVE_FILE -C target/${{ matrix.target }}/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 linux-cross: runs-on: ubuntu-latest strategy: matrix: - target: [aarch64, armv7, s390x, ppc64le, ppc64] + platform: + - target: aarch64-unknown-linux-gnu + arch: aarch64 + - target: armv7-unknown-linux-gnueabihf + arch: armv7 + - target: s390x-unknown-linux-gnu + arch: s390x + - target: powerpc64le-unknown-linux-gnu + arch: ppc64le + - target: powerpc64-unknown-linux-gnu + arch: ppc64 steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 @@ -136,14 +205,14 @@ jobs: - name: "Build wheels" uses: PyO3/maturin-action@v1 with: - target: ${{ matrix.target }} + target: ${{ matrix.platform.target }} manylinux: auto args: --release --out dist - uses: uraimo/run-on-arch-action@v2.5.0 - if: matrix.target != 'ppc64' + if: matrix.platform.arch != 'ppc64' name: Install built wheel with: - arch: ${{ matrix.target }} + arch: ${{ matrix.platform.arch }} distro: ubuntu20.04 githubToken: ${{ github.token }} install: | @@ -157,6 +226,18 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-${{ matrix.platform.target }}.tar.gz + tar czvf $ARCHIVE_FILE -C target/${{ matrix.platform.target }}/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 musllinux: runs-on: ubuntu-latest @@ -193,6 +274,18 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-${{ matrix.target }}.tar.gz + tar czvf $ARCHIVE_FILE -C target/${{ matrix.target }}/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 musllinux-cross: runs-on: ubuntu-latest @@ -231,6 +324,18 @@ jobs: with: name: wheels path: dist + - name: "Archive binary" + run: | + ARCHIVE_FILE=ruff-${{ matrix.platform.target }}.tar.gz + tar czvf $ARCHIVE_FILE -C target/${{ matrix.platform.target }}/release ruff + shasum -a 256 $ARCHIVE_FILE > $ARCHIVE_FILE.sha256 + - name: "Upload binary" + uses: actions/upload-artifact@v3 + with: + name: binaries + path: | + *.tar.gz + *.sha256 release: name: Release @@ -259,3 +364,11 @@ jobs: - name: "Update pre-commit mirror" run: | curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.RUFF_PRE_COMMIT_PAT }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/charliermarsh/ruff-pre-commit/dispatches --data '{"event_type": "pypi_release"}' + - uses: actions/download-artifact@v3 + with: + name: binaries + path: binaries + - name: Release + uses: softprops/action-gh-release@v1 + with: + files: binaries/*