feat: NoVersioningSystem functionality #46
This file contains 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: | |
pull_request: | |
branches: | |
- main | |
push: | |
# Pattern matched against refs/tags | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+' | |
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: > | |
STATICCODECOV_LIB_PATH=$(find build/ -maxdepth 1 -type d -name 'lib.*' -print -quit | xargs -I {} sh -c "find {} -type f -name 'staticcodecov*' -print -quit | sed 's|^./||'") && | |
pyinstaller --add-binary ${STATICCODECOV_LIB_PATH}:. --copy-metadata codecov-cli --hidden-import staticcodecov_languages --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: > | |
STATICCODECOV_LIB_PATH=$(find build/ -maxdepth 1 -type d -name 'lib.*' -print -quit | xargs -I {} sh -c "find {} -type f -name 'staticcodecov*' -print -quit | sed 's|^./||'") && | |
pyinstaller --add-binary ${STATICCODECOV_LIB_PATH}:. --copy-metadata codecov-cli --hidden-import staticcodecov_languages -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 --add-binary "build\lib.win-amd64-cpython-311\staticcodecov_languages.cp311-win_amd64.pyd;." --copy-metadata codecov-cli --hidden-import staticcodecov_languages -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: github.ref_type == 'tag' | |
with: | |
name: ${{ matrix.OUT_FILE_NAME }} | |
path: ./dist/${{ matrix.OUT_FILE_NAME }} | |
- name: Upload Release Asset | |
if: github.ref_type == 'tag' | |
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: github.ref_type == 'tag' | |
with: | |
name: codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
path: ./dist/codecovcli_${{ matrix.distro_name }}_${{ matrix.arch }} | |
- name: Upload Release Asset | |
if: github.ref_type == 'tag' | |
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 |