Upgrade Nu to v0.91 for release and nightly workflow (#12114)

Upgrade Nu to v0.91 for release and nightly workflow
A workflow running result example could be found here:
https://github.com/nushell/nightly/actions/runs/8198411468
This commit is contained in:
Justin Ma 2024-03-08 12:50:22 +08:00 committed by GitHub
parent 89b3fb92aa
commit b8181c5cae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 17 deletions

View file

@ -39,7 +39,7 @@ jobs:
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
if: github.repository == 'nushell/nightly' if: github.repository == 'nushell/nightly'
with: with:
version: 0.90.1 version: 0.91.0
# Synchronize the main branch of nightly repo with the main branch of Nushell official repo # Synchronize the main branch of nightly repo with the main branch of Nushell official repo
- name: Prepare for Nightly Release - name: Prepare for Nightly Release
@ -141,7 +141,7 @@ jobs:
- name: Setup Nushell - name: Setup Nushell
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
with: with:
version: 0.90.1 version: 0.91.0
- name: Release Nu Binary - name: Release Nu Binary
id: nu id: nu
@ -253,7 +253,7 @@ jobs:
- name: Setup Nushell - name: Setup Nushell
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
with: with:
version: 0.90.1 version: 0.91.0
- name: Release Nu Binary - name: Release Nu Binary
id: nu id: nu
@ -317,7 +317,7 @@ jobs:
- name: Setup Nushell - name: Setup Nushell
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
with: with:
version: 0.90.1 version: 0.91.0
# Keep the last a few releases # Keep the last a few releases
- name: Delete Older Releases - name: Delete Older Releases

View file

@ -71,7 +71,7 @@ const FULL_RLS_NAMING = {
# $env # $env
let USE_UBUNTU = 'ubuntu-20.04' let USE_UBUNTU = $os starts-with ubuntu
let FULL_NAME = $FULL_RLS_NAMING | get -i $target | default 'unknown-target-full' let FULL_NAME = $FULL_RLS_NAMING | get -i $target | default 'unknown-target-full'
print $'(char nl)Packaging ($bin) v($version) for ($target) in ($src)...'; hr-line -b print $'(char nl)Packaging ($bin) v($version) for ($target) in ($src)...'; hr-line -b
@ -82,8 +82,8 @@ print $'Start building ($bin)...'; hr-line
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Build for Ubuntu and macOS # Build for Ubuntu and macOS
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
if $os in [$USE_UBUNTU, 'macos-latest', 'ubuntu-latest'] { if $os in ['macos-latest'] or $USE_UBUNTU {
if $os starts-with ubuntu { if $USE_UBUNTU {
sudo apt update sudo apt update
sudo apt-get install libxcb-composite0-dev -y sudo apt-get install libxcb-composite0-dev -y
} }
@ -106,7 +106,7 @@ if $os in [$USE_UBUNTU, 'macos-latest', 'ubuntu-latest'] {
_ => { _ => {
# musl-tools to fix 'Failed to find tool. Is `musl-gcc` installed?' # musl-tools to fix 'Failed to find tool. Is `musl-gcc` installed?'
# Actually just for x86_64-unknown-linux-musl target # Actually just for x86_64-unknown-linux-musl target
if $os starts-with ubuntu { sudo apt install musl-tools -y } if $USE_UBUNTU { sudo apt install musl-tools -y }
cargo-build-nu $flags cargo-build-nu $flags
} }
} }
@ -128,16 +128,16 @@ let executable = $'target/($target)/release/($bin)*($suffix)'
print $'Current executable file: ($executable)' print $'Current executable file: ($executable)'
cd $src; mkdir $dist; cd $src; mkdir $dist;
rm -rf $'target/($target)/release/*.d' $'target/($target)/release/nu_pretty_hex*' rm -rf ...(glob $'target/($target)/release/*.d') ...(glob $'target/($target)/release/nu_pretty_hex*')
print $'(char nl)All executable files:'; hr-line print $'(char nl)All executable files:'; hr-line
# We have to use `print` here to make sure the command output is displayed # We have to use `print` here to make sure the command output is displayed
print (ls -f $executable); sleep 1sec print (ls -f ($executable | into glob)); sleep 1sec
print $'(char nl)Copying release files...'; hr-line print $'(char nl)Copying release files...'; hr-line
"To use Nu plugins, use the register command to tell Nu where to find the plugin. For example: "To use Nu plugins, use the register command to tell Nu where to find the plugin. For example:
> register ./nu_plugin_query" | save $'($dist)/README.txt' -f > register ./nu_plugin_query" | save $'($dist)/README.txt' -f
[LICENSE $executable] | each {|it| cp -rv $it $dist } | flatten [LICENSE ...(glob $executable)] | each {|it| cp -rv $it $dist } | flatten
print $'(char nl)Check binary release version detail:'; hr-line print $'(char nl)Check binary release version detail:'; hr-line
let ver = if $os == 'windows-latest' { let ver = if $os == 'windows-latest' {
@ -153,7 +153,7 @@ if ($ver | str trim | is-empty) {
# Create a release archive and send it to output for the following steps # Create a release archive and send it to output for the following steps
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
cd $dist; print $'(char nl)Creating release archive...'; hr-line cd $dist; print $'(char nl)Creating release archive...'; hr-line
if $os in [$USE_UBUNTU, 'macos-latest', 'ubuntu-latest'] { if $os in ['macos-latest'] or $USE_UBUNTU {
let files = (ls | get name) let files = (ls | get name)
let dest = if $env.RELEASE_TYPE == 'full' { $'($bin)-($version)-($FULL_NAME)' } else { $'($bin)-($version)-($target)' } let dest = if $env.RELEASE_TYPE == 'full' { $'($bin)-($version)-($FULL_NAME)' } else { $'($bin)-($version)-($target)' }
@ -181,10 +181,11 @@ if $os in [$USE_UBUNTU, 'macos-latest', 'ubuntu-latest'] {
if (get-env _EXTRA_) == 'msi' { if (get-env _EXTRA_) == 'msi' {
let wixRelease = $'($src)/target/wix/($releaseStem).msi' let wixRelease = $'($src)/target/wix/($releaseStem).msi'
print $'(char nl)Start creating Windows msi package...' print $'(char nl)Start creating Windows msi package with the following contents...'
cd $src; hr-line cd $src; hr-line
# Wix need the binaries be stored in target/release/ # Wix need the binaries be stored in target/release/
cp -r $'($dist)/*' target/release/ cp -r ($'($dist)/*' | into glob) target/release/
ls target/release/* | print
cargo install cargo-wix --version 0.3.4 cargo install cargo-wix --version 0.3.4
cargo wix --no-build --nocapture --package nu --output $wixRelease cargo wix --no-build --nocapture --package nu --output $wixRelease
# Workaround for https://github.com/softprops/action-gh-release/issues/280 # Workaround for https://github.com/softprops/action-gh-release/issues/280
@ -196,7 +197,7 @@ if $os in [$USE_UBUNTU, 'macos-latest', 'ubuntu-latest'] {
print $'(char nl)(ansi g)Archive contents:(ansi reset)'; hr-line; ls print $'(char nl)(ansi g)Archive contents:(ansi reset)'; hr-line; ls
let archive = $'($dist)/($releaseStem).zip' let archive = $'($dist)/($releaseStem).zip'
7z a $archive * 7z a $archive ...(glob *)
let pkg = (ls -f $archive | get name) let pkg = (ls -f $archive | get name)
if not ($pkg | is-empty) { if not ($pkg | is-empty) {
# Workaround for https://github.com/softprops/action-gh-release/issues/280 # Workaround for https://github.com/softprops/action-gh-release/issues/280

View file

@ -87,7 +87,7 @@ jobs:
- name: Setup Nushell - name: Setup Nushell
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
with: with:
version: 0.90.1 version: 0.91.0
- name: Release Nu Binary - name: Release Nu Binary
id: nu id: nu
@ -176,7 +176,7 @@ jobs:
- name: Setup Nushell - name: Setup Nushell
uses: hustcer/setup-nu@v3.9 uses: hustcer/setup-nu@v3.9
with: with:
version: 0.90.1 version: 0.91.0
- name: Release Nu Binary - name: Release Nu Binary
id: nu id: nu