-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #279 from codecov/feature/main-builds
Adding builds for main and some reusable workflows
- Loading branch information
Showing
9 changed files
with
216 additions
and
103 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
name: Build Compiled Assets | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
release: | ||
type: boolean | ||
default: false | ||
description: "Attach artifacts to a release" | ||
|
||
jobs: | ||
build_assets: | ||
name: Build packages | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
include: | ||
- os: macos-latest | ||
env: | ||
CFLAGS: -arch arm64 -arch x86_64 | ||
TARGET: macos | ||
CMD_REQS: > | ||
mkdir -p pip-packages && cd pip-packages && pip wheel --no-cache-dir -r ../requirements.txt && 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}:. --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 | ||
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_REQS: > | ||
pip install -r requirements.txt | ||
CMD_BUILD: > | ||
pyinstaller --add-binary "build\lib.win-amd64-cpython-311\staticcodecov_languages.cp311-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@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/[email protected] | ||
if: inputs.release == false | ||
with: | ||
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 | ||
|
||
|
||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: Build and Optionally Publish to PyPi | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
publish: | ||
type: boolean | ||
default: false | ||
description: "Publish to PyPi" | ||
|
||
jobs: | ||
build_for_pypi: | ||
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@v4 | ||
with: | ||
submodules: true | ||
- name: Set up Python 3.11 | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.11" | ||
- 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 | ||
if: inputs.publish == true | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
|
||
|
||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# 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 | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build_and_publish_to_pipy: | ||
uses: ./.github/workflows/build_for_pypi.yml | ||
secrets: inherit | ||
build_assets: | ||
uses: ./.github/workflows/build_assets.yml | ||
secrets: inherit |
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 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,7 @@ jobs: | |
create-release: | ||
name: Tag Release ${{ github.head_ref }} | ||
if: ${{ github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') && github.repository_owner == 'codecov' }} | ||
uses: codecov/gha-workflows/.github/workflows/[email protected].1 | ||
uses: codecov/gha-workflows/.github/workflows/[email protected].2 | ||
secrets: inherit | ||
|
||
release: | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,41 @@ on: | |
|
||
jobs: | ||
create-release-pr: | ||
name: Create PR for Release ${{ github.event.inputs.versionName }} | ||
uses: codecov/gha-workflows/.github/workflows/[email protected] | ||
secrets: inherit | ||
name: Create PR | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Import GPG key | ||
id: import-gpg | ||
uses: crazy-max/ghaction-import-gpg@v6 | ||
with: | ||
gpg_private_key: ${{ secrets.RELEASER_GPG_PRIVATE_KEY }} | ||
git_user_signingkey: true | ||
git_commit_gpgsign: true | ||
git_config_global: true | ||
|
||
- name: Create release branch | ||
run: git checkout -b release/${{ github.event.inputs.versionName }} | ||
|
||
- name: Update version and push | ||
id: make-commit | ||
run: | | ||
sed -i 's/version="[0-9]\.[0-9]\.[0-9]"/version="${{ github.event.inputs.versionName }}"/g' setup.py | ||
git add setup.py | ||
git commit -S --message "Prepare release ${{ github.event.inputs.versionName }}" | ||
echo "commit=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" | ||
git push origin release/${{ github.event.inputs.versionName }} | ||
- name: Create pull request into main | ||
uses: thomaseizinger/[email protected] | ||
with: | ||
github_token: ${{ secrets.GH_RELEASE_TOKEN }} | ||
head: release/${{ github.event.inputs.versionName }} | ||
base: main | ||
title: Release ${{ github.event.inputs.versionName }} | ||
reviewers: ${{ github.event.issue.user.login }} | ||
body: | | ||
Release PR for ${{ github.event.inputs.versionName }} | ||
I've updated the version name and committed: ${{ steps.make-commit.outputs.commit }}. |
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
Oops, something went wrong.