Skip to content

remove sdist

remove sdist #21

Workflow file for this run

name: pyauditor
on:
pull_request:
push:
branches:
- main
tags:
- v*
jobs:
linux:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-dependencies-linux
# We need to somehow get the SQLX_OFFLINE env variable into the container.
# Since `maturin-action` doesn't enable us to do that, we have to tell cargo
# via its configuration.
- name: Create fake .cargo/config.toml
run: |
mkdir -p .cargo
echo -e "[env]\nSQLX_OFFLINE = \"true\"" >> .cargo/config.toml
- name: Maturin
uses: messense/maturin-action@v1
with:
target: x86_64
manylinux: auto
command: build
args: --release --sdist -o dist --interpreter python3.8 python3.9 python3.10 python3.11 --manifest-path pyauditor/Cargo.toml
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: dist/*
windows:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-dependencies-windows
# We need to somehow get the SQLX_OFFLINE env variable into the container.
# Since `maturin-action` doesn't enable us to do that, we have to tell cargo
# via its configuration.
# I don't know how to script this on windows (and I don't care). Therefore
# I'll just copy the config.toml from the pyauditor directory. This may lead to
# problems when there is a .cargo/config.toml, which will then be overwritten.
- name: Create fake .cargo\config.toml
run: |
copy pyauditor\.cargo\config.toml .cargo\config.toml
# echo "[env]" >> .cargo\config.toml
# Fails here, saying "echo." doesn't exist.
# echo. >> .cargo\config.toml
# echo "SQLX_OFFLINE = \"true\"" >> .cargo\config.toml
# type .cargo\config.toml
- uses: messense/maturin-action@v1
with:
command: build
args: --release -o dist --interpreter python3.8 python3.9 python3.10 python3.11 --manifest-path pyauditor/Cargo.toml
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: dist\*
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-dependencies-macos
# We need to somehow get the SQLX_OFFLINE env variable into the container.
# Since `maturin-action` doesn't enable us to do that, we have to tell cargo
# via its configuration.
- name: Create fake .cargo/config.toml
run: |
mkdir -p .cargo
echo -e "[env]\nSQLX_OFFLINE = \"true\"" >> .cargo/config.toml
- uses: messense/maturin-action@v1
with:
command: build
args: --release -o dist --target universal2-apple-darwin --interpreter python3.8 python3.9 python3.10 python3.11 --manifest-path pyauditor/Cargo.toml
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: dist/*
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [ macos, windows, linux ]
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Publish to PyPi
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
pip install --upgrade twine
twine upload --skip-existing *
test:
name: pyauditor tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: postgres
ports:
- 5432:5432
env:
SQLX_VERSION: 0.7.2
SQLX_FEATURES: postgres,rustls,sqlite
RUSTFLAGS: -C link-arg=-s
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-musl
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-dependencies-test
- name: Massage sqlx features env variable...
run: |
TMP=${{ env.SQLX_FEATURES }}
SQLX_FEATURES_CACHE="${TMP//,/_}"
echo "SQLX_FEATURES_CACHE=${SQLX_FEATURES_CACHE}" >> $GITHUB_ENV
- name: Cache sqlx
id: cache_sqlx
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-sqlx
key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES_CACHE }}
cache-directories: |
~/.cargo/bin/sqlx
~/.cargo/bin/cargo-sqlx
- name: Install sqlx-cli
# if: ${{ steps.cache_sqlx.outputs.cache-hit }}
run: cargo install sqlx-cli --version=${{ env.SQLX_VERSION }} --features=${{ env.SQLX_FEATURES }} --no-default-features --locked
- name: Migrate database
run: |
sudo apt-get install libpq-dev -y
SKIP_DOCKER=true ./scripts/init_db.sh
- name: Build auditor
run: cargo build --bin auditor
- uses: nick-fields/retry@v2
with:
timeout_minutes: 20
max_attempts: 3
retry_wait_seconds: 120
retry_on: error
command: SKIP_COMPILATION=true ./scripts/test_pyauditor.sh
docs:
name: pyauditor docs
runs-on: ubuntu-latest
env:
SQLX_OFFLINE: true
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
prefix-key: cache-dependencies-docs
- name: Build pyauditor docs
run: ./scripts/docs_pyauditor.sh
- name: Deploy pyauditor docs
uses: JamesIves/github-pages-deploy-action@v4
if: github.ref == 'refs/heads/main'
with:
folder: pyauditor/docs/_build/html
target-folder: pyauditor
token: ${{ secrets.GITHUB_TOKEN }}
clean: false