Skip to content

Commit

Permalink
Add publish binary (#139)
Browse files Browse the repository at this point in the history
  • Loading branch information
casey authored Aug 11, 2021
1 parent 57b0a72 commit 19561ef
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 21 deletions.
75 changes: 67 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ repository = "https://github.com/soenkehahn/agora"
homepage = "https://github.com/soenkehahn/agora"

[workspace]
members = [".", "bin/prerelease", "agora-lnd-client", "lnd-test-context"]
members = [".", "agora-lnd-client", "bin/prerelease", "bin/publish", "lnd-test-context"]

[dependencies]
backtrace = "0.3.61"
Expand Down
11 changes: 11 additions & 0 deletions bin/publish/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[package]
name = "publish"
version = "0.0.0"
edition = "2018"
publish = false

[dependencies]
cargo_metadata = "0.14.0"
cradle = "0.0.18"
structopt = "0.3.22"
tempfile = "3.2.0"
79 changes: 79 additions & 0 deletions bin/publish/src/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
use cargo_metadata::MetadataCommand;
use cradle::prelude::*;
use std::env;
use structopt::StructOpt;
use tempfile::tempdir;

#[derive(StructOpt)]
struct Arguments {
revision: String,
#[structopt(long)]
publish_agora_lnd_client: bool,
}

fn main() {
let arguments = Arguments::from_args();

let tempdir = tempdir().unwrap();

(
"git",
"clone",
"[email protected]:agora-org/agora.git",
CurrentDir(tempdir.path()),
)
.run_unit();

env::set_current_dir(tempdir.path().join("agora")).unwrap();

(
"git",
"merge-base",
"--is-ancestor",
&arguments.revision,
"master",
)
.run_unit();

("git", "checkout", arguments.revision).run_unit();

let metadata = MetadataCommand::new().exec().unwrap();

let version = metadata
.packages
.into_iter()
.filter(|package| package.name == "agora")
.next()
.unwrap()
.version;

if arguments.publish_agora_lnd_client {
(
"cargo",
"publish",
"--dry-run",
CurrentDir("agora-lnd-client"),
)
.run_unit();
}

("cargo", "publish", "--dry-run").run_unit();

(
"git",
"tag",
"--sign",
"--message",
format!("Release version {}", version),
version.to_string(),
)
.run_unit();

("git", "push", "origin", &version.to_string()).run_unit();

if arguments.publish_agora_lnd_client {
("cargo", "publish", CurrentDir("agora-lnd-client")).run_unit();
}

("cargo", "publish").run_unit();
}
14 changes: 2 additions & 12 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,8 @@ watch +command='ltest':
push: all
git push

publish remote: all
#!/usr/bin/env bash
set -euxo pipefail
VERSION=`cargo run -- --version | cut -d' ' -f2`
git diff --no-ext-diff --quiet --exit-code
git branch | grep '* master'
(cd agora-lnd-client && cargo publish --dry-run)
cargo publish --dry-run
git tag -a $VERSION -m "Release version $VERSION"
git push {{remote}} $VERSION
(cd agora-lnd-client && cargo publish)
cargo publish
publish revision:
cargo run -p publish -- {{revision}}

clean-binaries:
rm -rf target/bitcoin* target/ln*
Expand Down

0 comments on commit 19561ef

Please sign in to comment.