Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: plugin test git-ref default to the default branch of the plugin's repository #1694

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/plugins/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,7 @@ asdf plugin test <plugin_name> <plugin_url> [--asdf-tool-version <version>] [--a
installed with that specific version. Defaults to `asdf latest <plugin-name>`
- If optional `[--asdf-plugin-gitref <git_ref>]` is specified, the plugin itself
is checked out at that commit/branch/tag. This is useful for testing a
pull-request on your plugin's CI.
pull-request on your plugin's CI. Defaults to the default branch of the plugin's repository.
- Optional parameter `[test_command...]` is the command to execute to validate
the installed tool works correctly. Typically `<tool> --version` or
`<tool> --help`. For example, to test the NodeJS plugin, we could run
Expand Down
4 changes: 2 additions & 2 deletions docs/pt-br/plugins/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,8 @@ asdf plugin test <plugin-name> <plugin-url> [--asdf-tool-version <version>] [--a
```

Apenas os dois primeiros argumentos são necessários.
Se \__version_ for especificado, a ferramenta será instalada com essa versão específica. O padrão é o que retorna `asdf mais recente <plugin-name>`.
Se _git-ref_ for especificado, o plug-in em si é verificado nesse commit/branch/tag, útil para testar um pull-request no CI do seu plug-in.
Se \__version_ for especificado, a ferramenta será instalada com essa versão específica. O padrão é o que retorna `asdf latest <plugin-name>`.
Se _git-ref_ for especificado, o plug-in em si é verificado nesse commit/branch/tag, útil para testar um pull-request no CI do seu plug-in. O padrão é o branch _default_ do repositório do plugin.

Os argumentos Rest são considerados o comando a ser executado para garantir que a ferramenta instalada funcione corretamente.
Normalmente seria algo que leva `--version` ou `--help`.
Expand Down
2 changes: 1 addition & 1 deletion docs/zh-hans/plugins/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ asdf plugin test <plugin-name> <plugin-url> [--asdf-tool-version <version>] [--a

只有前两个参数是必须的。
如果指定了 \__version_,则该工具将随指定版本一起安装。默认返回为 `asdf latest <plugin-name>`。
如果指定了 _git-ref_,则插件将检查提交/分支/标签。这对于在该插件的 CI 上测试拉取请求非常有用。
如果指定了 _git-ref_,则插件将检查提交/分支/标签。这对于在该插件的 CI 上测试拉取请求非常有用。默认值是插件仓库的默认分支。

剩下的参数被视为要执行的命令,以确保安装的工具正常工作。通常情况下,它需要带 `--version` 或者 `--help`。例如,要测试 NodeJS 插件,我们可以运行:

Expand Down
33 changes: 19 additions & 14 deletions lib/commands/command-plugin-test.bash
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,20 @@ plugin_test_command() {
local plugin_url="$2"
shift 2

local plugin_gitref="master"
local exit_code
local TEST_DIR

fail_test() {
printf "FAILED: %s\n" "$1"
rm -rf "$TEST_DIR"
exit 1
}

if [ -z "$plugin_name" ] || [ -z "$plugin_url" ]; then
fail_test "please provide a plugin name and url"
fi

local plugin_gitref
local tool_version
local interpret_args_literally
local skip_next_arg
Expand Down Expand Up @@ -45,21 +58,13 @@ plugin_test_command() {
fi
done

if [ "$#" -eq 1 ]; then
set -- "${SHELL:-sh}" -c "$1"
if [ -z "$plugin_gitref" ]; then
plugin_remote_default_branch=$(git ls-remote --symref "$plugin_url" HEAD | awk '{ sub(/refs\/heads\//, ""); print $2; exit }')
plugin_gitref=${3:-${plugin_remote_default_branch}}
fi

local exit_code
local TEST_DIR

fail_test() {
printf "FAILED: %s\n" "$1"
rm -rf "$TEST_DIR"
exit 1
}

if [ -z "$plugin_name" ] || [ -z "$plugin_url" ]; then
fail_test "please provide a plugin name and url"
if [ "$#" -eq 1 ]; then
set -- "${SHELL:-sh}" -c "$1"
fi

TEST_DIR=$(mktemp -dt asdf.XXXX)
Expand Down
Loading