This repository was archived by the owner on Jul 16, 2025. It is now read-only.
test the build_assets workflow #67
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Build Compiled Assets | |
on: | |
push: | |
branches: | |
- swatinem/rm-treesitter | |
workflow_call: | |
inputs: | |
release: | |
type: boolean | |
default: false | |
description: "Attach artifacts to a release" | |
jobs: | |
build_assets: | |
name: Build packages - ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- os: macos-latest | |
TARGET: macos | |
# currently, wrapt pulls the arm64 version instead of the universal one, so the below is a hack | |
CMD_REQS: > | |
mkdir -p pip-packages && cd pip-packages && pip wheel --no-cache-dir --no-binary tree_sitter,ijson,charset_normalizer,PyYAML .. && | |
rm $(ls | grep wrapt) && pip download wrapt --platform=universal2 --only-binary=:all: && pip install $(ls | grep wrapt) --force-reinstall && cd .. && | |
pip install --no-deps --no-index --find-links=pip-packages pip-packages/* | |
CMD_BUILD: > | |
pyinstaller --copy-metadata codecov-cli --target-arch universal2 -F codecov_cli/main.py && | |
mv dist/main dist/codecovcli_macos && | |
lipo -archs dist/codecovcli_macos | grep 'x86_64 arm64' | |
OUT_FILE_NAME: codecovcli_macos | |
ASSET_MIME: application/octet-stream | |
- os: ubuntu-20.04 | |
TARGET: ubuntu | |
CMD_REQS: > | |
pip install -r requirements.txt && pip install . | |
CMD_BUILD: > | |
pyinstaller --copy-metadata codecov-cli -F codecov_cli/main.py && | |
cp ./dist/main ./dist/codecovcli_linux | |
OUT_FILE_NAME: codecovcli_linux | |
ASSET_MIME: application/octet-stream | |
- os: windows-latest | |
TARGET: windows | |
CMD_REQS: > | |
pip install -r requirements.txt && pip install . | |
CMD_BUILD: > | |
pyinstaller --copy-metadata codecov-cli -F codecov_cli\main.py && | |
Copy-Item -Path ".\dist\main.exe" -Destination ".\dist\codecovcli_windows.exe" | |
OUT_FILE_NAME: codecovcli_windows.exe | |
ASSET_MIME: application/vnd.microsoft.portable-executable | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
${{matrix.CMD_REQS}} | |
python setup.py build | |
- name: Install pyinstaller | |
run: pip install pyinstaller | |
- name: Build with pyinstaller for ${{matrix.TARGET}} | |
run: ${{matrix.CMD_BUILD}} | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v4 | |
if: inputs.release == false | |
with: | |
name: ${{ matrix.OUT_FILE_NAME }} | |
path: ./dist/${{ matrix.OUT_FILE_NAME }} | |
- name: Upload Release Asset | |
if: inputs.release == true | |
id: upload-release-asset | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./dist/${{ matrix.OUT_FILE_NAME }} | |
asset_name: ${{ matrix.OUT_FILE_NAME }} | |
tag: ${{ github.ref }} | |
overwrite: true | |
build_assets_alpine_arm: | |
name: Build assets - Alpine and ARM | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- distro: "python:3.11-alpine3.18" | |
arch: arm64 | |
distro_name: alpine | |
- distro: "python:3.11-alpine3.18" | |
arch: x86_64 | |
distro_name: alpine | |
- distro: "python:3.11-bullseye" | |
arch: arm64 | |
distro_name: linux | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
with: | |
platforms: ${{ matrix.arch }} | |
- name: Run in Docker | |
run: | | |
docker run \ | |
--rm \ | |
-v $(pwd):/${{ github.workspace }} \ | |
-w ${{ github.workspace }} \ | |
--platform linux/${{ matrix.arch }} \ | |
${{ matrix.distro }} \ | |
./scripts/build_${{ matrix.distro_name }}_arm.sh ${{ matrix.distro_name }}_${{ matrix.arch }} | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v4 | |
if: inputs.release == false | |
with: | |
name: codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
path: ./dist/codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
- name: Upload Release Asset | |
if: inputs.release == true | |
id: upload-release-asset | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./dist/codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
asset_name: codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
tag: ${{ github.ref }} | |
overwrite: true |