diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c28e771..c8a0a1b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,6 +24,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] @@ -57,6 +59,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 8fe140f..68e5028 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl # 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 @@ -157,6 +157,18 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl ``` > - 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 cab09eb..cb3203e 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 74730c7..ebe1f5f 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 @@ -287,4 +287,4 @@ Note: - Update samples to consume `actions/checkout@v2` - Job containers now require git in the PATH for checkout, otherwise fallback to REST API - Minimum git version 2.18 -- Update problem matcher logic regarding source file verification (runner) \ No newline at end of file +- Update problem matcher logic regarding source file verification (runner)