Skip to content

Publish to Crates.io #39

Publish to Crates.io

Publish to Crates.io #39

name: Publish to Crates.io
on:
release:
types:
- created
workflow_dispatch:
permissions:
contents: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Publish crates for llama-cpp-sys-2
run: RUST_BACKTRACE=1 cargo publish --package llama-cpp-sys-2 --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --verbose --dry-run
- name: Publish crates for llama-cpp-2
run: RUST_BACKTRACE=1 cargo publish --package llama-cpp-2 --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --verbose --dry-run
- name: Update version in TOML files
run: |
# Extract the current version from the TOML file
CURRENT_VERSION=$(awk -F '"' '/^version/ {print $2}' llama-cpp-2/Cargo.toml)
# Increment the version
NEXT_VERSION=$(echo "$CURRENT_VERSION" | awk -F. -v OFS=. '{++$NF; print}')
# Update version in llama-cpp-sys-2 Cargo.toml
sed -i "s/^version = \".*\"/version = \"$NEXT_VERSION\"/g" llama-cpp-sys-2/Cargo.toml
# Update version in llama-cpp-2 Cargo.toml
sed -i "s/^version = \".*\"/version = \"$NEXT_VERSION\"/g" llama-cpp-2/Cargo.toml
sed -i "s/^\(llama-cpp-sys-2 = { path = \"\.\.\/llama-cpp-sys-2\", version = \)\"$CURRENT_VERSION\"/\1\"$NEXT_VERSION\"/" llama-cpp-2/Cargo.toml
# Commit the changes
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git add llama-cpp-sys-2/Cargo.toml llama-cpp-2/Cargo.toml
git commit -m "Bump version to $NEXT_VERSION [skip ci]"
# Push the changes back to the repository
git push origin main:$GITHUB_REF