alternate toolchain action #86
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: Publish quil-py | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
description: "Manually publish release" | |
push: | |
branches: [ 279-quil-py-distribute-wheels-for-windows ] | |
jobs: | |
is-python-release: | |
if: ${{ github.event_name == 'workflow_dispatch' || startsWith(github.event.release.tag_name, 'quil-py/v') }} | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Release tag starts with quil-py/v, proceeding with release" | |
macos: | |
if: false | |
runs-on: macos-12 | |
needs: is-python-release | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: aarch64-apple-darwin | |
profile: minimal | |
default: true | |
- name: Build wheels - universal2 | |
# universal2 supports both x86_64 and aarch64 | |
uses: messense/maturin-action@v1 | |
with: | |
args: -i python --release --universal2 --manifest-path quil-py/Cargo.toml --out dist | |
- name: Install wheel | |
run: | | |
pip install quil --no-index --find-links dist --force-reinstall | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
linux: | |
if: false | |
runs-on: ubuntu-22.04 | |
needs: is-python-release | |
env: | |
CXXFLAGS: "-std=c++11" | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
target: [x86_64, aarch64] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
default: true | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Build wheels | |
uses: messense/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
manylinux: 2014 | |
args: -i ${{ matrix.python-version }} --release --manifest-path quil-py/Cargo.toml --out dist | |
- name: Install wheel | |
if: ${{ matrix.target == 'x86_64' }} # pip can only install wheels for it's own architecture | |
run: | | |
pip install quil --no-index --find-links dist --force-reinstall | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
target: [x64, x86] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@nightly | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: ${{ matrix.target }} | |
- name: Build wheels | |
uses: messense/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
rust-toolchain: nightly | |
args: -i python --release --manifest-path quil-py/Cargo.toml --out dist -Z macro-backtrace | |
- name: Install built wheel | |
run: | | |
pip install quil --find-links dist --force-reinstall --no-deps --no-index | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
publish-python-package: | |
name: Release | |
if: false | |
runs-on: ubuntu-latest | |
needs: [ macos, linux, windows ] | |
steps: | |
- uses: actions/download-artifact@v3 | |
- name: Publish to PyPi | |
# env: | |
# MATURIN_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
# MATURIN_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
uses: messense/maturin-action@v1 | |
with: | |
command: upload | |
args: --skip-existing wheels/* | |
publish-rust-crate: | |
name: Release | |
if: false | |
runs-on: ubuntu-latest | |
needs: [ publish-python-package ] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.PAT }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- run: cargo publish --manifest-path=quil-py/Cargo.toml --token ${{ secrets.CRATES_IO_TOKEN }} |