🐛 Fix error propagation from rust to python #15
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 | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
- '.github/**' | |
tags: | |
- '**' | |
workflow_dispatch: ~ | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- '.github/**' | |
jobs: | |
build-core: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
target: ${{ matrix.target }} | |
toolchain: nightly | |
override: true | |
- name: Set nightly as default Rust toolchain | |
run: | | |
rustup default nightly | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Create and start virtual environment | |
shell: bash | |
run: | | |
python3 -m venv venv | |
if [[ ${{ matrix.os }} == windows* ]] | |
then | |
echo source venv/Scripts/activate | |
else | |
echo source venv/bin/activate | |
fi > activate_env.sh | |
- name: Install dependencies | |
shell: bash | |
run: | | |
source activate_env.sh | |
python -m pip install --upgrade pip | |
python -m pip install maturin | |
- name: Build | |
shell: bash | |
run: | | |
source activate_env.sh | |
cd python_genshin_artifact_core | |
maturin develop | |
- name: Export install file | |
shell: bash | |
run: | | |
source activate_env.sh | |
cd python_genshin_artifact_core | |
maturin build --out ./dist | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: genshin-artifact-core | |
path: python_genshin_artifact_core/dist | |
upload-core: | |
runs-on: ubuntu-latest | |
needs: [build-core] | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.11 | |
- name: Install Twine | |
run: | | |
pip install twine | |
- name: get dist artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: genshin-artifact-core | |
path: dist | |
- name: upload to pypi | |
run: twine upload dist/* | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
build-artifact: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.11 | |
- name: Install Poetry and Twine | |
run: | | |
pip install poetry twine | |
- name: Install dependencies | |
run: poetry install | |
- name: Build wheel | |
run: poetry build | |
- name: upload to pypi | |
if: startsWith(github.ref, 'refs/tags/') | |
run: twine upload dist/* | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
- name: upload to artifact | |
if: github.ref == 'refs/heads/main' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Python-Genshin-Artifact | |
path: dist/*.whl |