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