diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d8c83ac..33154dd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,6 +29,8 @@ jobs: run: __test__/verify-no-unstaged-changes.sh test: + env: + main_path: main_path_test strategy: matrix: runs-on: [ubuntu-latest, macos-latest, windows-latest] @@ -62,6 +64,16 @@ jobs: shell: bash run: __test__/verify-clean.sh + # Use environment variable as path + - name: Environment path test + uses: ./ + with: + ref: test-data/v2/basic + path: ${{ env.main_path }} + - name: Verify environment path test + shell: bash + run: __test__/verify-environment-path.sh + # Side by side - name: Checkout side by side 1 uses: ./ diff --git a/README.md b/README.md index bfecf46..022c6b1 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/ # Default: true persist-credentials: '' - # Relative path under $GITHUB_WORKSPACE to place the repository + # Relative or absolute path under $GITHUB_WORKSPACE to place the repository path: '' # Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching @@ -208,6 +208,18 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/ ``` > - If your secondary repository is private you will need to add the option noted in [Checkout multiple repos (private)](#Checkout-multiple-repos-private) +## Checkout repo with a environment based path + +```yaml +env: + main_path: ${{ github.workspace }}/main +steps: +- name: Checkout + uses: actions/checkout@v2 + with: + path: ${{ env.main_path }} +``` + ## Checkout multiple repos (nested) ```yaml diff --git a/__test__/verify-environment-path.sh b/__test__/verify-environment-path.sh new file mode 100755 index 0000000..bd64859 --- /dev/null +++ b/__test__/verify-environment-path.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +if [ ! -f "./main_path_test/basic-file.txt" ]; then + echo "Expected file does not exist" + exit 1 +fi diff --git a/action.yml b/action.yml index 5aa90a7..e8c083e 100644 --- a/action.yml +++ b/action.yml @@ -49,7 +49,7 @@ inputs: description: 'Whether to configure the token or SSH key with the local git config' default: true path: - description: 'Relative path under $GITHUB_WORKSPACE to place the repository' + description: 'Relative or absolute path under $GITHUB_WORKSPACE to place the repository' clean: description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' default: true diff --git a/adrs/0153-checkout-v2.md b/adrs/0153-checkout-v2.md index c331290..f2555f1 100644 --- a/adrs/0153-checkout-v2.md +++ b/adrs/0153-checkout-v2.md @@ -65,7 +65,7 @@ We want to take this opportunity to make behavioral changes, from v1. This docum description: 'Whether to configure the token or SSH key with the local git config' default: true path: - description: 'Relative path under $GITHUB_WORKSPACE to place the repository' + description: 'Relative or absolute path under $GITHUB_WORKSPACE to place the repository' clean: description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' default: true