feat[lang]: implement function exports #1773
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@v3 | |
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 | |
- name: Python | |
uses: actions/setup-python@v4 | |
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@v3 | |
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 | |
- name: Python | |
uses: actions/setup-python@v4 | |
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@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts/ | |
- name: Upload assets | |
# fun - artifacts are downloaded into "artifact/". | |
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 |