Skip to content

Commit

Permalink
Update publish recipe (#543)
Browse files Browse the repository at this point in the history
  • Loading branch information
casey authored Nov 3, 2024
1 parent fd807f0 commit 70f06d5
Showing 1 changed file with 60 additions and 67 deletions.
127 changes: 60 additions & 67 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,128 +12,121 @@ export RUST_LOG := log

# watch filesystem for changes and rerun tests
watch +ARGS='test':
cargo watch --clear --exec '{{ARGS}}'
cargo watch --clear --exec '{{ARGS}}'

# show stats about torrents at `PATH`
stats PATH:
cargo build --release
time ./target/release/imdl --unstable torrent stats --input {{PATH}}
cargo build --release
time ./target/release/imdl --unstable torrent stats --input {{PATH}}

push:
! git branch | grep '* master'
git push github
! git branch | grep '* master'
git push github

# clean up feature branch BRANCH
done BRANCH=`git rev-parse --abbrev-ref HEAD`:
git push github {{BRANCH}}:master
git rebase github/master master
git branch -d {{BRANCH}}
git push github {{BRANCH}}:master
git rebase github/master master
git branch -d {{BRANCH}}

test:
cargo test --all
cargo test --all

clippy:
cargo clippy --all-targets --all-features
cargo clippy --all-targets --all-features

fmt:
cargo +nightly fmt --all
cargo +nightly fmt --all

forbid:
./bin/forbid
./bin/forbid

preview-readme:
grip -b README.md
grip -b README.md

# build and serve the book
book:
mdbook serve book --open --dest-dir ../www/book
mdbook serve book --open --dest-dir ../www/book

dev-deps:
brew install grip
cargo install mdbook
cargo install cargo-watch
npm install --global asciicast2gif
brew install imagemagick
brew install gifsicle
brew install grip
cargo install mdbook
cargo install cargo-watch
npm install --global asciicast2gif
brew install imagemagick
brew install gifsicle

# update generated documentation
gen:
cargo build
cargo run --package gen -- --bin target/debug/imdl all
cargo build
cargo run --package gen -- --bin target/debug/imdl all

check-minimal-versions:
./bin/check-minimal-versions
./bin/check-minimal-versions

check: test clippy forbid check-minimal-versions gen
git diff --no-ext-diff --quiet --exit-code
cargo +nightly fmt --all -- --check
git diff --no-ext-diff --quiet --exit-code
cargo +nightly fmt --all -- --check

draft: push
hub pull-request -o --draft
hub pull-request -o --draft

pr: check push
hub pull-request -o

merge BRANCH=`git rev-parse --abbrev-ref HEAD`:
#!/usr/bin/env bash
set -euxo pipefail
while ! hub ci-status --verbose {{BRANCH}}; do
sleep 5
done
just done {{BRANCH}}
publish-check: check
cargo outdated --exit-code 1
grep '^\[{{version}}\]' target/gen/CHANGELOG.md

publish BRANCH=`git rev-parse --abbrev-ref HEAD`: publish-check (merge BRANCH)
#!/usr/bin/env bash
set -euxo pipefail
git tag -a {{version}} -m 'Release {{version}}'
git push github {{version}}
while ! hub ci-status --verbose {{BRANCH}}; do
sleep 5
done
cargo publish
hub pull-request -o

publish:
#!/usr/bin/env bash
set -euxo pipefail
rm -rf tmp/release
git clone [email protected]:casey/intermodal.git tmp/release
cd tmp/release
cargo build
cargo run --package gen -- --bin target/debug/imdl all
VERSION=v`sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1`
git tag -a $VERSION -m "Release $VERSION"
git push origin $VERSION
cargo publish
cd ../..
rm -rf tmp/release
# record, upload, and render demo animation
demo: demo-record demo-upload demo-render

demo-record:
#!/usr/bin/env bash
set -euxo pipefail
cargo build --release --all
rm -f tmp/9front.torrent
asciinema rec \
--title "Intermodal {{version}} Demo" \
--command ./target/release/demo \
--overwrite \
tmp/demo.json
#!/usr/bin/env bash
set -euxo pipefail
cargo build --release --all
rm -f tmp/9front.torrent
asciinema rec \
--title "Intermodal {{version}} Demo" \
--command ./target/release/demo \
--overwrite \
tmp/demo.json
demo-upload:
asciinema upload tmp/demo.json
asciinema upload tmp/demo.json

demo-render:
../asciicast2gif/asciicast2gif -S4 tmp/demo.json www/demo.gif
../asciicast2gif/asciicast2gif -S4 tmp/demo.json www/demo.gif

# print commit metadata types
commit-types:
cargo run --package gen -- --bin target/debug/imdl commit-types
cargo run --package gen -- --bin target/debug/imdl commit-types

# open site index
www:
open www/index.html
open www/index.html

# retrieve large collection of torrents from the Internet Archive
get-torrents:
aria2c \
-d dat \
-x 10 \
'https://ia802701.us.archive.org/21/items/2014_torrent_archive_organized/torrent_archive_organized.zip'
aria2c \
-d dat \
-x 10 \
'https://ia802701.us.archive.org/21/items/2014_torrent_archive_organized/torrent_archive_organized.zip'

# download bittorrent.org repository
get-beps:
git clone [email protected]:bittorrent/bittorrent.org.git tmp/bittorrent.org
git clone [email protected]:bittorrent/bittorrent.org.git tmp/bittorrent.org

build-image:
podman build -t imdl .
Expand Down

0 comments on commit 70f06d5

Please sign in to comment.