v0.3.2 #211
Workflow file for this run
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
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Build-and-Release | |
on: | |
release: | |
types: created | |
jobs: | |
build_and_publish_to_pipy: | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write # This is required for requesting the JWT | |
contents: read # This is required for actions/checkout | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
python setup.py build | |
python setup.py develop | |
- name: Build distributions for different platforms | |
run: | | |
pip install wheel | |
python setup.py sdist bdist_wheel --plat-name=manylinux2014_x86_64 | |
python setup.py bdist_wheel --plat-name=macosx-12.6-x86_64 | |
python setup.py bdist_wheel --plat-name=win_amd64 | |
- name: Publish package to PyPi | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
buildassets: | |
name: Build packages | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- os: macos-latest | |
TARGET: macos | |
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}:. --hidden-import staticcodecov_languages -F codecov_cli/main.py && | |
mv dist/main dist/codecovcli_macos | |
OUT_FILE_NAME: codecovcli_macos | |
ASSET_MIME: application/octet-stream | |
- os: ubuntu-latest | |
TARGET: ubuntu | |
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}:. --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_BUILD: > | |
pyinstaller --add-binary "build\lib.win-amd64-cpython-310\staticcodecov_languages.cp310-win_amd64.pyd;." --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@v3 | |
with: | |
submodules: true | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.10" | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
python setup.py build | |
- name: Install pyinstaller | |
run: pip install pyinstaller | |
- name: Build with pyinstaller for ${{matrix.TARGET}} | |
run: ${{matrix.CMD_BUILD}} | |
- name: Upload Release Asset | |
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 | |
publish_release: | |
name: Publish release | |
needs: [buildassets, build_and_publish_to_pipy] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
steps: | |
- id: 'auth' | |
name: 'Authenticate to Google Cloud' | |
uses: 'google-github-actions/[email protected]' | |
with: | |
create_credentials_file: 'true' | |
workload_identity_provider: ${{ secrets.CODECOV_GCP_WIDP }} | |
service_account: ${{ secrets.CODECOV_GCP_WIDSA }} | |
# Publish the release tag to a Pub/Sub topic | |
- name: Publish a message to a Pub/Sub topic | |
env: | |
CLOUDSDK_CORE_PROJECT: ${{ secrets.GCLOUD_UPLOADER_PROJECT_ID }} | |
run: | | |
gcloud pubsub topics publish ${{ secrets.GCLOUD_UPLOADER_PUBSUB_TOPIC }} --message '{"release":"'"${{ github.ref_name }}"'", "latest":true}' |