remove sdist #21
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: 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 |