Skip to content

Bump the cargo group across 4 directories with 6 updates #612

Bump the cargo group across 4 directories with 6 updates

Bump the cargo group across 4 directories with 6 updates #612

Workflow file for this run

name: Pipeline
on:
push:
branches:
- master
tags:
- '*'
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
pguser: "postgres"
pghost: "127.0.0.1"
pgpass: ${{ secrets.PGPASS }}
jobs:
build-and-test-windows:
runs-on: windows-latest
needs: [windows]
steps:
- uses: actions/cache@v3
with:
path: |
AISdb/Lib/site-packages
C:\Users\runneradmin\.cargo
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-cargo-
- uses: ikalnytskyi/action-setup-postgres@v4
with:
password: ${{ secrets.PGPASS }}
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: 'x64'
cache: 'pip'
- name: Install Rust Toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
cache: true
- name: Install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
- name: Create Python Virtual Environment and Install Dependencies
run: |
python -m venv AISdb
AISdb\Scripts\activate
python -m pip install --upgrade pip
python -m pip install maturin
maturin develop --release --extras=test,docs
python -m pip install --upgrade pytest pytest-dotenv pytest-cov furl hypothesis trustme astor pyopenssl isort pydirectory
- name: Run Tests
run: |
AISdb\Scripts\activate
pytest ./aisdb/tests/ --ignore=./aisdb/tests/test_014_marinetraffic.py --maxfail=10
- name: Clean Up
run: |
Remove-Item -Recurse -Force AISdb
build-and-test-linux:
runs-on: ubuntu-latest
needs: [linux]
env:
POSTGRES_USER: ${{ secrets.PGUSER }}
POSTGRES_PASSWORD: ${{ secrets.PGPASS }}
steps:
- uses: actions/cache@v3
with:
path: |
AISdb/lib/python3.10/site-packages
~/.cargo
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-cargo-
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install Rust Toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
source $HOME/.cargo/env
- name: Install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
wasm-pack --version
- name: Setup PostgreSQL
run: |
sudo apt-get update -y
sudo apt-get install postgresql -y
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo -u postgres psql postgres -c "ALTER USER postgres WITH PASSWORD '$POSTGRES_PASSWORD';"
- name: Create Python Virtual Environment and Install Dependencies
run: |
python -m venv AISdb
source ./AISdb/bin/activate
python -m pip install --upgrade pip
python -m pip install maturin
maturin develop --release --extras=test,docs
python -m pip install --upgrade pytest pytest-dotenv pytest-cov furl hypothesis trustme astor pyopenssl isort pydirectory
- name: Run Tests
run: |
source ./AISdb/bin/activate
pytest ./aisdb/tests/ --ignore=./aisdb/tests/test_014_marinetraffic.py --maxfail=10
- name: Clean Up
run: |
rm -rf AISdb
sudo apt-get clean
build-and-test-macos:
runs-on: macos-latest
needs: [macos]
env:
POSTGRES_USER: ${{ secrets.PGUSER }}
POSTGRES_PASSWORD: ${{ secrets.PGPASS }}
steps:
- uses: actions/cache@v3
with:
path: |
AISdb/lib/python3.10/site-packages
~/.cargo
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-cargo-
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install Rust Toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
source $HOME/.cargo/env
- name: Install LLVM and Configure clang
run: |
brew install llvm
export PATH="$(brew --prefix llvm)/bin:$PATH"
export CC="$(brew --prefix llvm)/bin/clang --target=wasm32-unknown-unknown"
echo "export PATH=$PATH" >> $GITHUB_ENV
echo "CC=$CC" >> $GITHUB_ENV
- name: Install zlib and Ensure pkg-config is Correctly Configured
run: |
brew install zlib
export PKG_CONFIG_PATH=$(brew --prefix zlib)/lib/pkgconfig
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV
- name: Install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
wasm-pack --version
- name: Install PostgreSQL
run: |
brew install postgresql@14
brew services start postgresql@14
brew link postgresql@14 --force
brew cleanup
- name: Configure PostgreSQL
run: |
psql postgres -c "CREATE ROLE postgres WITH LOGIN SUPERUSER PASSWORD '${{ env.POSTGRES_PASSWORD }}';"
- name: Create Python Virtual Environment and Install Dependencies
run: |
python -m venv AISdb
source ./AISdb/bin/activate
python -m pip install --upgrade pip
python -m pip install maturin
maturin develop --release --extras=test,docs
python -m pip install --upgrade pytest pytest-dotenv pytest-cov furl hypothesis trustme astor pyopenssl isort pydirectory
- name: Run Tests
run: |
source ./AISdb/bin/activate
pytest ./aisdb/tests/ --ignore=./aisdb/tests/test_014_marinetraffic.py --maxfail=10
- name: Clean Up
run: |
rm -rf AISdb
linux:
runs-on: ubuntu-latest
needs: [sdist]
strategy:
matrix:
target: [ x86_64, x86 ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
if command -v yum &> /dev/null; then
sudo yum update -y && sudo yum install -y perl-core openssl openssl-devel pkgconfig libatomic clang gcc-multilib
# If we're running on i686 we need to symlink libatomic
# in order to build openssl with -latomic flag.
if [[ ! -d "/usr/lib64" ]]; then
sudo ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so
fi
echo "finished yum install"
else
# If we're running on debian-based system.
sudo apt update -y && sudo apt-get install -y libssl-dev openssl pkg-config zlib1g-dev clang gcc-multilib
echo "finished apt install"
fi
- name: Cache Rust toolchain
uses: actions/cache@v3
with:
path: C:\Users\runneradmin\.cargo
key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
cargo-${{ runner.os }}-
- name: Install Rust Target for wasm
run: |
rustup target add wasm32-unknown-unknown
- name: install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
wasm-pack --version
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: dist
- name: Clean Up
run: |
rm -rf AISdb
rm -rf ~/.cargo
windows:
runs-on: windows-latest
needs: [sdist]
strategy:
matrix:
target: [ x64, x86 ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: ${{ matrix.target }}
cache: 'pip'
- name: Cache Rust toolchain
uses: actions/cache@v3
with:
path: C:\Users\runneradmin\.cargo
key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
cargo-${{ runner.os }}-
- name: Install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
path: dist
- name: Clean Up
run: |
Remove-Item -Recurse -Force AISdb
Remove-Item -Recurse -Force C:\Users\runneradmin\.cargo\*
macos:
runs-on: macos-latest
needs: [sdist]
env:
MACOSX_DEPLOYMENT_TARGET: 10.13
strategy:
matrix:
target: [ x86_64, aarch64 ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Cache Rust toolchain
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
cargo-${{ runner.os }}-
- name: Install LLVM and Configure clang
run: |
brew install llvm
export PATH="$(brew --prefix llvm)/bin:$PATH"
export CC="$(brew --prefix llvm)/bin/clang --target=wasm32-unknown-unknown"
echo "export PATH=$PATH" >> $GITHUB_ENV
echo "CC=$CC" >> $GITHUB_ENV
- name: Install zlib and Ensure pkg-config is Correctly Configured
run: |
brew install zlib
export PKG_CONFIG_PATH=$(brew --prefix zlib)/lib/pkgconfig
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV
- name: Install Rust Target for wasm
run: |
rustup target add wasm32-unknown-unknown
- name: Install wasm-pack
run: |
cargo install --locked wasm-pack --verbose
cargo install --locked wasm-bindgen-cli --verbose
cargo install --locked wasm-opt --verbose
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
path: dist
- name: Clean Up
run: |
rm -rf AISdb
rm -rf ~/.cargo
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [build-and-test-linux, build-and-test-windows, build-and-test-macos]
steps:
- uses: actions/download-artifact@v4
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing *