Skip to content

Prepare release v0.11.1 #317

Prepare release v0.11.1

Prepare release v0.11.1 #317

Workflow file for this run

name: Publish Python package
on:
release:
types: [ created ]
push:
branches:
- main
pull_request:
jobs:
build-linux:
name: Linux build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.23.x'
- name: Install dependencies
run: |
go get ./...
- name: Build
run: |
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o pymodo/bin/modo_linux .
chmod +x pymodo/bin/modo_linux
tar cfz pymodo/bin/modo_linux.tar.gz pymodo/bin/modo_linux
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: modo_linux.tar.gz
path: pymodo/bin/modo_linux.tar.gz
build-windows:
name: Windows build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.23.x'
- name: Install dependencies
run: |
go get ./...
- name: Build
run: GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o pymodo/bin/modo_win.exe .
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: modo_win.exe
path: pymodo/bin/modo_win.exe
build-macos:
name: MacOS build
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.23.x'
- name: Install dependencies
run: |
go get ./...
- name: Build
run: |
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o pymodo/bin/modo_macos .
chmod +x pymodo/bin/modo_macos
tar cfz pymodo/bin/modo_macos.tar.gz pymodo/bin/modo_macos
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: modo_macos.tar.gz
path: pymodo/bin/modo_macos.tar.gz
publish:
name: Build wheel and publish
runs-on: ubuntu-latest
needs:
- build-linux
- build-windows
- build-macos
steps:
- name: Checkout Modo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Install dependencies
run: |
pip install --upgrade build twine
- name: Download Linux binaries
uses: actions/download-artifact@v4
with:
name: modo_linux.tar.gz
path: pymodo/bin/
- name: Download Windows binaries
uses: actions/download-artifact@v4
with:
name: modo_win.exe
path: pymodo/bin/
- name: Download MacOS binaries
uses: actions/download-artifact@v4
with:
name: modo_macos.tar.gz
path: pymodo/bin/
- name: Extract and check files
run: |
tar xfz pymodo/bin/modo_linux.tar.gz
tar xfz pymodo/bin/modo_macos.tar.gz
rm pymodo/bin/modo_linux.tar.gz
rm pymodo/bin/modo_macos.tar.gz
ls -R -l pymodo/bin/
- name: Build wheel
run: |
python -m build
- name: Upload to TestPyPI
if: ${{ github.event_name == 'release' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
run: |
python -m twine upload --verbose --skip-existing -r testpypi -u __token__ -p ${{ secrets.TEST_PYPI_TOKEN }} dist/*
- name: Upload to PyPI
if: ${{ github.event_name == 'release' }}
run: |
python -m twine upload --verbose -u __token__ -p ${{ secrets.PYPI_TOKEN }} dist/*