Skip to content

release

release #21

Workflow file for this run

name: release
on: workflow_dispatch
jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install OpenSSL
run: sudo apt-get update && sudo apt-get install -y libssl-dev pkg-config
- name: Set OpenSSL Environment Variables
run: |
echo "OPENSSL_DIR=/usr" >> $GITHUB_ENV
echo "OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu" >> $GITHUB_ENV
echo "OPENSSL_INCLUDE_DIR=/usr/include" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig" >> $GITHUB_ENV
- name: Verify OpenSSL Installation and Env Vars
run: |
echo "OPENSSL_DIR=$OPENSSL_DIR"
echo "OPENSSL_LIB_DIR=$OPENSSL_LIB_DIR"
echo "OPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR"
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
openssl version
pkg-config --libs --cflags openssl
- name: Cleanup dist directory
run: rm -rf dist/
- name: Build and Prepare Wheels
run: |
export OPENSSL_DIR=$OPENSSL_DIR
export OPENSSL_LIB_DIR=$OPENSSL_LIB_DIR
export OPENSSL_INCLUDE_DIR=$OPENSSL_INCLUDE_DIR
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH
cargo build --release
env:
CARGO_TERM_COLOR: always
- name: List built wheels
run: ls dist/
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels-linux
path: dist
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install OpenSSL
run: choco install openssl
- name: Build and Prepare Wheels
uses: messense/maturin-action@v1
with:
command: build
args: --release -o dist --find-interpreter
- name: List built wheels
run: ls dist/
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels-windows
path: dist
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install OpenSSL
run: brew install openssl
- name: Build and Prepare Wheels
uses: messense/maturin-action@v1
with:
command: build
args: --release -o dist --universal2 --find-interpreter
- name: List built wheels
run: ls dist/
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels-macos
path: dist
release:
name: Release
runs-on: ubuntu-latest
needs: [ macos, windows, linux ]
steps:
- name: Download all wheels (Linux)
uses: actions/download-artifact@v2
with:
name: wheels-linux
- name: Download all wheels (Windows)
uses: actions/download-artifact@v2
with:
name: wheels-windows
- name: Download all wheels (macOS)
uses: actions/download-artifact@v2
with:
name: wheels-macos
- name: List all downloaded wheels
run: ls
- name: Publish to PyPI
uses: messense/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing *