feat[ux]: compile .vyi
files
#4458
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
name: Build artifacts | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
default: '' | |
push: | |
branches: | |
- master | |
pull_request: | |
release: | |
types: [published] # releases and pre-releases (release candidates) | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
unix-build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, macos-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# grab the commit passed in via `tag`, if any | |
ref: ${{ github.event.inputs.tag }} | |
# need to fetch unshallow so that setuptools_scm can infer the version | |
fetch-depth: 0 | |
# debug | |
- name: Git shorthash | |
run: git rev-parse --short HEAD | |
- name: Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Generate Binary | |
run: >- | |
pip install --no-binary pycryptodome --no-binary cbor2 . && | |
pip install pyinstaller && | |
make freeze | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
path: dist/vyper.* | |
windows-build: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# grab the commit passed in via `tag`, if any | |
ref: ${{ github.event.inputs.tag }} | |
# need to fetch unshallow so that setuptools_scm can infer the version | |
fetch-depth: 0 | |
# debug | |
- name: Git shorthash | |
run: git rev-parse --short HEAD | |
- name: Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Generate Binary | |
run: >- | |
pip install . && | |
pip install pyinstaller && | |
./make.cmd freeze | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
path: dist/vyper.* | |
publish-release-assets: | |
needs: [windows-build, unix-build] | |
if: ${{ github.event_name == 'release' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts/ | |
- name: Upload assets | |
# fun - artifacts are downloaded into "artifact/". | |
# TODO: this needs to be tested when upgrading to upload-artifact v4 | |
working-directory: artifacts/artifact | |
run: | | |
set -Eeuxo pipefail | |
for BIN_NAME in $(ls) | |
do | |
curl -L \ | |
--no-progress-meter \ | |
-X POST \ | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}"\ | |
-H "Content-Type: application/octet-stream" \ | |
"https://uploads.github.com/repos/${{ github.repository }}/releases/${{ github.event.release.id }}/assets?name=${BIN_NAME/+/%2B}" \ | |
--data-binary "@${BIN_NAME}" | |
done | |
# check build success for pull requests | |
build-success: | |
if: always() | |
runs-on: ubuntu-latest | |
needs: [windows-build, unix-build] | |
steps: | |
- name: check that all builds succeeded | |
if: ${{ contains(needs.*.result, 'failure') }} | |
run: exit 1 |