Skip to content

Commit 2ab6bc5

Browse files
Prepare for 0.11.0
1 parent 09cea58 commit 2ab6bc5

File tree

6 files changed

+266
-2
lines changed

6 files changed

+266
-2
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rabbitmqadmin"
3-
version = "0.10.0"
3+
version = "0.11.0"
44
edition = "2021"
55

66
[dependencies]

scripts/release-linux.nu

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#!/usr/bin/env nu
2+
3+
let binary = 'rabbitmqadmin'
4+
let src = $env.SRC | path expand
5+
let os = $env.OS
6+
let target = $env.TARGET
7+
8+
let version = (open Cargo.toml | get package.version)
9+
let release_dir = $'($env.SRC)/target/($target)/release' | path expand
10+
let executable = $'($release_dir)/($binary)'
11+
12+
print $'Packaging ($binary) v($version) for ($target) in ($src)...'
13+
print $'Executable path is ($executable)...'
14+
15+
if not ('Cargo.lock' | path exists) {
16+
cargo generate-lockfile
17+
}
18+
19+
rm -rf $release_dir
20+
mkdir $release_dir
21+
22+
print $'Building on Linux in ($src)...'
23+
build-with-cargo
24+
25+
#
26+
# Linux
27+
#
28+
29+
if $os in ['ubuntu', 'ubuntu-latest'] {
30+
print "Building on Ubuntu..."
31+
if $target == 'aarch64-unknown-linux-gnu' {
32+
sudo apt-get install -y gcc-aarch64-linux-gnu
33+
$env.CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER = 'aarch64-linux-gnu-gcc'
34+
build-with-cargo
35+
} else if $target == 'armv7-unknown-linux-gnueabihf' {
36+
sudo apt-get install pkg-config gcc-arm-linux-gnueabihf -y
37+
$env.CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER = "arm-linux-gnueabihf-gcc"
38+
build-with-cargo
39+
} else {
40+
# musl-tools to fix 'Failed to find tool. Is `musl-gcc` installed?'
41+
sudo apt-get install musl-tools -y
42+
build-with-cargo
43+
}
44+
}
45+
46+
if $os in ['fedora', 'fedora-latest'] {
47+
print "Building on Fedora..."
48+
if $target == 'aarch64-unknown-linux-gnu' {
49+
sudo dnf install -y gcc-aarch64-linux-gnu
50+
$env.CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER = 'aarch64-linux-gnu-gcc'
51+
build-with-cargo
52+
} else if $target == 'armv7-unknown-linux-gnueabihf' {
53+
sudo dnf install pkg-config gcc-arm-linux-gnueabihf -y
54+
$env.CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER = 'arm-linux-gnueabihf-gcc'
55+
build-with-cargo
56+
}
57+
}
58+
59+
60+
#
61+
# Release packaging
62+
#
63+
64+
cd $src
65+
66+
print $"Release directory: ($release_dir)"
67+
ls $release_dir | print
68+
69+
cp -r LICENSE* $release_dir
70+
cp -r README* $release_dir
71+
72+
cd $release_dir
73+
ls $release_dir
74+
75+
print "Compiling a release archive..."
76+
77+
let archive_filename = $'($binary)-($version)-($target).tar.gz'
78+
print $'Release archive name: ($archive_filename)'
79+
tar --verbose -C $release_dir -czf $archive_filename $binary
80+
print $'Release archive at ($archive_filename) is ready'
81+
echo $'archive=($archive_filename)' | save --append $env.GITHUB_OUTPUT
82+
83+
def 'build-with-cargo' [] {
84+
cargo rustc --bin $binary --target $target --release
85+
}

scripts/release-macos.nu

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/usr/bin/env nu
2+
3+
let binary = 'rabbitmqadmin'
4+
let src = $env.SRC | path expand
5+
let target = $env.TARGET
6+
7+
let version = (open Cargo.toml | get package.version)
8+
let release_dir = $'($env.SRC)/target/($target)/release' | path expand
9+
let executable = $'($release_dir)/($binary)'
10+
11+
print $'Packaging ($binary) v($version) for ($target) in ($src)...'
12+
print $'Executable path is ($executable)...'
13+
14+
if not ('Cargo.lock' | path exists) {
15+
cargo generate-lockfile
16+
}
17+
18+
rm -rf $release_dir
19+
mkdir $release_dir
20+
21+
print $'Building on macOS in ($src)...'
22+
build-with-cargo
23+
24+
25+
#
26+
# Release packaging
27+
#
28+
29+
cd $src
30+
31+
print $"Release directory: ($release_dir)"
32+
ls $release_dir | print
33+
34+
cp -r LICENSE* $release_dir
35+
cp -r README* $release_dir
36+
37+
cd $release_dir
38+
ls $release_dir
39+
40+
print "Compiling a release archive..."
41+
42+
let archive_filename = $'($binary)-($version)-($target).tar.gz'
43+
print $'Release archive name: ($archive_filename)'
44+
tar --verbose -czf $'($release_dir)/($archive_filename)' $binary
45+
print $'Release archive at ($archive_filename) is ready'
46+
echo $'archive=($archive_filename)' | save --append $env.GITHUB_OUTPUT
47+
48+
def 'build-with-cargo' [] {
49+
cargo rustc --bin $binary --target $target --release
50+
}

scripts/release-windows-msi.nu

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env nu
2+
3+
const binary = 'rabbitmqadmin'
4+
const binary_filename = $'($binary).exe'
5+
let src = $env.SRC | path expand
6+
let target = $env.TARGET | default $"x86_64-pc-windows-msvc"
7+
8+
let version = (open Cargo.toml | get package.version)
9+
let release_dir = $'($env.SRC)/target/($target)/release' | path expand
10+
let executable = $'($release_dir)/($binary).exe'
11+
12+
print $'Packaging ($binary) v($version) for ($target) in ($src)...'
13+
print $'Executable path is ($executable)...'
14+
15+
if not ('Cargo.lock' | path exists) {
16+
cargo generate-lockfile
17+
}
18+
19+
rm -rf $release_dir
20+
mkdir $release_dir
21+
22+
print $'Building on Windows in ($src)...'
23+
cargo rustc --bin $binary --target $target --release
24+
25+
#
26+
# Release packaging
27+
#
28+
29+
cd $src
30+
31+
print $"Release directory: ($release_dir)"
32+
ls $release_dir | print
33+
34+
cp -r LICENSE* $release_dir
35+
cp -r README* $release_dir
36+
37+
cd $release_dir
38+
ls $release_dir
39+
40+
let archive_filename = $'($binary)-($version)-($target).zip'
41+
print $'Release archive name: ($archive_filename)'
42+
let archive = $'($release_dir)/($archive_filename).zip'
43+
44+
let wixRelease = $'($src)/target/wix/($archive_filename).msi'
45+
print $'(char nl)Will create a Windows MSI package with the following contents...'
46+
cd $src; hr-line
47+
48+
# Wix need the binaries be stored in target/release/
49+
cp -r ($'($release_dir)/*' | into glob) target/release/
50+
ls target/release/* | print
51+
52+
cargo install cargo-wix --version 0.3.8
53+
cargo wix --no-build --nocapture --package $binary --output $wixRelease
54+
55+
# Workaround for https://github.com/softprops/action-gh-release/issues/280
56+
let archive = ($wixRelease | str replace --all '\' '/')
57+
print $'Zip archive path: ($archive)'
58+
echo $"archive=($archive)" | save --append $env.GITHUB_OUTPUT
59+
60+
61+
# Print a horizontal line marker
62+
def 'hr-line' [
63+
--blank-line(-b)
64+
] {
65+
print $'(ansi g)---------------------------------------------------------------------------->(ansi reset)'
66+
if $blank_line { char nl }
67+
}

scripts/release-windows.nu

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/usr/bin/env nu
2+
3+
const binary = 'rabbitmqadmin'
4+
const binary_filename = $'($binary).exe'
5+
let src = $env.SRC | path expand
6+
let target = $env.TARGET | default $"x86_64-pc-windows-msvc"
7+
8+
let version = (open Cargo.toml | get package.version)
9+
let release_dir = $'($env.SRC)/target/($target)/release' | path expand
10+
let executable = $'($release_dir)/($binary).exe'
11+
12+
print $'Packaging ($binary) v($version) for ($target) in ($src)...'
13+
print $'Executable path is ($executable)...'
14+
15+
if not ('Cargo.lock' | path exists) {
16+
cargo generate-lockfile
17+
}
18+
19+
rm -rf $release_dir
20+
mkdir $release_dir
21+
22+
print $'Building on Windows in ($src)...'
23+
cargo rustc --bin $binary --target $target --release
24+
25+
#
26+
# Release packaging
27+
#
28+
29+
cd $src
30+
31+
print $"Release directory: ($release_dir)"
32+
ls $release_dir | print
33+
34+
cp -r LICENSE* $release_dir
35+
cp -r README* $release_dir
36+
37+
cd $release_dir
38+
ls $release_dir
39+
40+
let archive_filename = $'($binary)-($version)-($target).zip'
41+
print $'Release archive name: ($archive_filename)'
42+
7z a $archive_filename $binary_filename
43+
44+
print $'(char nl)(ansi g)Archive contents:(ansi reset)'; hr-line; ls | print
45+
let archive = $'($release_dir)/($archive_filename).zip'
46+
7z a $archive ...(glob *)
47+
let pkg = (ls -f $archive | get name)
48+
if not ($pkg | is-empty) {
49+
# Workaround for https://github.com/softprops/action-gh-release/issues/280
50+
let archive = ($pkg | get 0 | str replace --all '\' '/')
51+
print $'Zip archive path: ($archive)'
52+
echo $"archive=($archive)" | save --append $env.GITHUB_OUTPUT
53+
}
54+
55+
56+
# Print a horizontal line marker
57+
def 'hr-line' [
58+
--blank-line(-b)
59+
] {
60+
print $'(ansi g)---------------------------------------------------------------------------->(ansi reset)'
61+
if $blank_line { char nl }
62+
}

0 commit comments

Comments
 (0)