fix: skip install if existing #475
Workflow file for this run
This file contains hidden or 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
| name: Test Action | |
| on: | |
| - push | |
| - pull_request | |
| - workflow_dispatch | |
| jobs: | |
| test_default_inputs: | |
| name: Test with default inputs | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| pnpm: | |
| - 9.15.5 | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Run the action | |
| uses: ./ | |
| with: | |
| version: 9.15.5 | |
| - name: 'Test: which' | |
| run: which pnpm; which pnpx | |
| - name: 'Test: version' | |
| run: | | |
| actual="$(pnpm --version)" | |
| echo "pnpm version: ${actual}" | |
| if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then | |
| echo "ERROR: pnpm --version did not produce valid output" | |
| exit 1 | |
| fi | |
| shell: bash | |
| - name: 'Test: install in a fresh project' | |
| run: | | |
| mkdir /tmp/test-project | |
| cd /tmp/test-project | |
| pnpm init | |
| pnpm add is-odd | |
| shell: bash | |
| test_dest: | |
| name: Test with dest | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| pnpm: | |
| - 9.15.5 | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Run the action | |
| uses: ./ | |
| with: | |
| version: 9.15.5 | |
| dest: ~/test/pnpm | |
| - name: 'Test: which' | |
| run: which pnpm && which pnpx | |
| - name: 'Test: version' | |
| run: | | |
| actual="$(pnpm --version)" | |
| echo "pnpm version: ${actual}" | |
| if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then | |
| echo "ERROR: pnpm --version did not produce valid output" | |
| exit 1 | |
| fi | |
| shell: bash | |
| test_standalone: | |
| name: Test with standalone | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - windows-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Run the action | |
| uses: ./ | |
| with: | |
| version: 9.15.0 | |
| standalone: true | |
| - name: 'Test: which' | |
| run: which pnpm | |
| - name: 'Test: version' | |
| run: | | |
| actual="$(pnpm --version)" | |
| echo "pnpm version: ${actual}" | |
| if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then | |
| echo "ERROR: pnpm --version did not produce valid output" | |
| exit 1 | |
| fi | |
| shell: bash | |
| - name: 'Test: install in a fresh project' | |
| run: | | |
| mkdir /tmp/test-standalone | |
| cd /tmp/test-standalone | |
| pnpm init | |
| pnpm add is-odd | |
| shell: bash | |
| test_dev_engines: | |
| name: Test with devEngines.packageManager | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| version: | |
| - '9.15.5' | |
| - '>=9.15.0' | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Set up package.json with devEngines.packageManager | |
| run: echo '{"devEngines":{"packageManager":{"name":"pnpm","version":"${{ matrix.version }}","onFail":"download"}}}' > package.json | |
| shell: bash | |
| - name: Run the action | |
| uses: ./ | |
| - name: 'Test: which' | |
| run: which pnpm; which pnpx | |
| - name: 'Test: version' | |
| run: | | |
| set -e | |
| required='${{ matrix.version }}' | |
| actual="$(pnpm --version)" | |
| echo "pnpm version: ${actual}" | |
| if [ "${required}" = ">=9.15.0" ]; then | |
| min="9.15.0" | |
| if [ "$(printf '%s\n' "${min}" "${actual}" | sort -V | head -n1)" != "${min}" ]; then | |
| echo "Expected pnpm version >= ${min}, but got ${actual}" | |
| exit 1 | |
| fi | |
| else | |
| if [ "${actual}" != "${required}" ]; then | |
| echo "Expected pnpm version ${required}, but got ${actual}" | |
| exit 1 | |
| fi | |
| fi | |
| shell: bash | |
| test_run_install: | |
| name: 'Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }})' | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| pnpm: | |
| - 9.15.5 | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| run_install: | |
| - name: 'null' | |
| value: 'null' | |
| - name: 'global' | |
| value: | | |
| args: | |
| - --global | |
| - --global-dir=./pnpm-global | |
| - npm | |
| - yarn | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Run the action | |
| uses: ./ | |
| with: | |
| version: 9.15.5 | |
| run_install: ${{ matrix.run_install.value }} | |
| - name: 'Test: which' | |
| run: which pnpm; which pnpx | |
| - name: 'Test: version' | |
| run: | | |
| actual="$(pnpm --version)" | |
| echo "pnpm version: ${actual}" | |
| if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then | |
| echo "ERROR: pnpm --version did not produce valid output" | |
| exit 1 | |
| fi | |
| shell: bash |