Skip to content

Commit

Permalink
Add crates.io version check before running cargo publish
Browse files Browse the repository at this point in the history
  • Loading branch information
jxors committed Aug 30, 2024
1 parent 8acc26f commit c838ae4
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 13 deletions.
18 changes: 6 additions & 12 deletions .github/workflows/crates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,14 @@ jobs:
- name: Build vmimage
run: cargo run -r --bin build-vmimage
- name: Package (liblisa)
run: cargo publish -p liblisa --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa || cargo publish -p liblisa --token ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Package (liblisa-x64-observer-shmqueue)
run: cargo publish -p liblisa-x64-observer-shmqueue --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa-x64-observer-shmqueue || cargo publish -p liblisa-x64-observer-shmqueue --token ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Package (liblisa-x64-observer)
run: cargo publish -p liblisa-x64-observer --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa-x64-observer || cargo publish -p liblisa-x64-observer --token ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Package (liblisa-enc)
run: cargo publish -p liblisa-enc --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa-enc || cargo publish -p liblisa-enc --token ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Package (liblisa-synth)
run: cargo publish -p liblisa-synth --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa-synth || cargo publish -p liblisa-synth --token ${{ secrets.CRATES_IO_API_TOKEN }}
- name: Package (liblisa-semantics-tool)
run: cargo publish -p liblisa-semantics-tool --token ${{ secrets.CRATES_IO_API_TOKEN }}
continue-on-error: true
run: ./crates.io_version_check.sh liblisa-semantics-tool || cargo publish -p liblisa-semantics-tool --token ${{ secrets.CRATES_IO_API_TOKEN }}
1 change: 0 additions & 1 deletion arch/x64/liblisa-x64-observer/.gitignore

This file was deleted.

1 change: 1 addition & 0 deletions arch/x64/liblisa-x64-observer/image/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.img
14 changes: 14 additions & 0 deletions crates.io_version_check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#! /bin/bash

# Usage: crates.io_version_check.sh liblisa || cargo publish ...

PROJECT=$1
LOCAL_VERSION=$(cargo tree -p liblisa | head -n 1 | cut -d ' ' -f2 | tail -c +2)

echo "Checking version $LOCAL_VERSION"

if curl https://crates.io/api/v1/crates/$PROJECT | jq --arg local_version "$LOCAL_VERSION" '.versions | any(.num == $local_version)' | grep true; then
exit 0
else
exit 1
fi

0 comments on commit c838ae4

Please sign in to comment.