-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Update README.md for nightly usage
- Loading branch information
Showing
3 changed files
with
175 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,9 +10,10 @@ This GitHub Action will setup a [Nushell](https://github.com/nushell/nushell) en | |
|
||
### Which Version Should I Choose? | ||
|
||
1. `[email protected]` supports `Nu` **v0.60.0 ~ latest**; | ||
2. `[email protected]` supports `Nu` **v0.60.0 ~ 0.70.0**; | ||
3. `setup-nu@v1` supports `Nu` **v0.60.0 ~ 0.63.0**; | ||
- `[email protected]` supports `Nu` **v0.60.0 ~ latest** and latest `nightly` version; | ||
- `[email protected]` supports `Nu` **v0.60.0 ~ latest**; | ||
- `[email protected]` supports `Nu` **v0.60.0 ~ 0.70.0**; | ||
- `setup-nu@v1` supports `Nu` **v0.60.0 ~ 0.63.0**; | ||
|
||
### Examples | ||
|
||
|
@@ -26,7 +27,7 @@ to make the commands be executed by `nu`: | |
```yaml | ||
- uses: hustcer/[email protected] | ||
with: | ||
version: '0.80' # Don't use 0.80 here, as it was a float number and will be convert to 0.8, you can use v0.80/0.80.0 or '0.80' | ||
version: "0.80" # Don't use 0.80 here, as it was a float number and will be convert to 0.8, you can use v0.80/0.80.0 or '0.80' | ||
- run: print $'Nu version info:(char nl)'; version | ||
shell: nu {0} | ||
- name: Default shell will be `nu` | ||
|
@@ -55,17 +56,17 @@ jobs: | |
basic-usage: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: hustcer/setup-nu@main | ||
with: | ||
version: '*' | ||
- run: version; print $"(char nl)Dir contents:(char nl)"; ls ((which nu).path.0 | path dirname) | ||
- run: | | ||
print $'Current env:(char nl)' | ||
print $env | ||
- name: You can run bash commands, too | ||
run: pwd && ls -la | ||
shell: bash | ||
- uses: actions/[email protected] | ||
- uses: hustcer/setup-nu@main | ||
with: | ||
version: "*" | ||
- run: version; print $"(char nl)Dir contents:(char nl)"; ls ((which nu).path.0 | path dirname) | ||
- run: | | ||
print $'Current env:(char nl)' | ||
print $env | ||
- name: You can run bash commands, too | ||
run: pwd && ls -la | ||
shell: bash | ||
``` | ||
|
||
#### Use Nu Modules | ||
|
@@ -75,65 +76,89 @@ To use modules in `Nu`, please refer to the following examples: | |
1. Use Nu modules in `nu -c` | ||
|
||
```yaml | ||
- name: Setup nu | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Use Your Nu Modules | ||
shell: nu {0} | ||
run: | | ||
nu -c "use nu/module.nu *; print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ')" | ||
- name: Setup nu | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Use Your Nu Modules | ||
shell: nu {0} | ||
run: | | ||
nu -c "use nu/module.nu *; print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ')" | ||
``` | ||
|
||
You have to wrap the `nu` code in `nu -c ""`, and the nu version should be equal to or above `0.69`. | ||
|
||
2. Use modules from absolute path | ||
|
||
```yaml | ||
- name: Setup nu | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Use Your Nu Modules by Absolute Path | ||
shell: nu {0} | ||
run: | | ||
use ${{ github.workspace }}/nu/module.nu * | ||
print 'Use module from: ${{ github.workspace }}/nu/module.nu' | ||
print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ-ABSOLUTE-PATH') | ||
- name: Setup nu | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Use Your Nu Modules by Absolute Path | ||
shell: nu {0} | ||
run: | | ||
use ${{ github.workspace }}/nu/module.nu * | ||
print 'Use module from: ${{ github.workspace }}/nu/module.nu' | ||
print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ-ABSOLUTE-PATH') | ||
``` | ||
|
||
Again, the nu version should be equal to or above `0.69`. | ||
|
||
3. Copy your modules to one of the default `$env.NU_LIB_DIRS` | ||
|
||
```yaml | ||
- name: Setup nu@latest | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Prepare Nu Modules | ||
shell: nu {0} | ||
run: | | ||
let LIB_DIR = [$nu.default-config-dir 'scripts'] | path join | ||
if not ($LIB_DIR | path exists) { mkdir $LIB_DIR } | ||
cp -r nu/* $LIB_DIR | ||
- name: Use Your Nu Modules | ||
shell: nu {0} | ||
run: | | ||
use module.nu * | ||
print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ') | ||
- name: Setup nu@latest | ||
uses: hustcer/[email protected] | ||
with: | ||
version: 0.86 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Prepare Nu Modules | ||
shell: nu {0} | ||
run: | | ||
let LIB_DIR = [$nu.default-config-dir 'scripts'] | path join | ||
if not ($LIB_DIR | path exists) { mkdir $LIB_DIR } | ||
cp -r nu/* $LIB_DIR | ||
- name: Use Your Nu Modules | ||
shell: nu {0} | ||
run: | | ||
use module.nu * | ||
print (get-env 'ABC-XYZ' 'DEFAULT-ABC-XYZ') | ||
``` | ||
|
||
To make it work please make sure that the nu version should be equal to or above `0.85`. | ||
|
||
They are not perfect yet, but they do work. BTW: Please tell me if you found a better way and PRs are always welcomed. | ||
|
||
#### Use Nu Nightly Version | ||
|
||
`Nushell` is currently in active development, if you want to use the latest features it's also available by set the version to `nightly`, just as below: | ||
|
||
```yaml | ||
- uses: hustcer/[email protected] | ||
with: | ||
version: nightly # Will download and setup the latest nightly version of Nushell | ||
- run: print $'Nu version info:(char nl)'; version | ||
shell: nu {0} | ||
- name: Default shell will be `nu` | ||
shell: nu {0} | ||
run: | | ||
print $'Nu path:(which nu)(char nl)' | ||
def greeting [name: string] { | ||
print $'Hello ($name)' | ||
} | ||
greeting hustcer | ||
``` | ||
> **Warning** | ||
> Use `Nushell` nightly version with caution: The nu binary may change every other day and this may break your workflow. | ||
> Only the latest nightly version will be downloaded and setup, and the version must be `nightly`. | ||
|
||
#### Others | ||
|
||
Or, check the following examples: | ||
|
@@ -153,7 +178,7 @@ the latest version: | |
- run: print $'Nu version info:(char nl)'; version | ||
``` | ||
**Note**: **Before Nushell reaches 1.0, each version may change a lot, it is recommend that you use a specified version instead**. | ||
**Note**: **Before Nushell reaches 1.0, each version may change a lot, it is recommend that you use a specified version instead**. | ||
In rare circumstances you might get rate limiting errors, this is caused by the | ||
workflow has to make requests to GitHub API in order to list available releases. | ||
|
@@ -162,18 +187,18 @@ If this happens you can set the `GITHUB_TOKEN` environment variable. | |
```yaml | ||
- uses: hustcer/[email protected] | ||
with: | ||
version: '0.80' | ||
version: "0.80" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
``` | ||
|
||
### Inputs | ||
|
||
| Name | Required | Description | Type | Default | | ||
| ---------------- | -------- | ----------------------------------------------------------- | ------ | ------- | | ||
| `version` | no | A valid NPM-style semver specification. | string | * | | ||
| `check-latest` | no | Set to `true` if you want to use the latest version | bool | false | | ||
| `enable-plugins` | no | Set to `true` if you want to register the bundled plugins, Nu v0.69 and above is required | bool | false | | ||
| Name | Required | Description | Type | Default | | ||
| ---------------- | -------- | ----------------------------------------------------------------------------------------- | ------ | ------- | | ||
| `version` | no | A valid NPM-style semver specification, such as `0.86`, `nightly`, etc. | string | \* | | ||
| `check-latest` | no | Set to `true` if you want to use the latest version | bool | false | | ||
| `enable-plugins` | no | Set to `true` if you want to register the bundled plugins, Nu v0.69 and above is required | bool | false | | ||
|
||
The semver specification is passed directly to NPM's [semver package](https://www.npmjs.com/package/semver). | ||
This GitHub Action will install the latest matching release. | ||
|
Oops, something went wrong.