Skip to content
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
7 changes: 6 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ updates:
- package-ecosystem: npm
open-pull-requests-limit: 20
versioning-strategy: increase
directory: "/"
directories:
- "/"
- "/tests/npm"
- "/tests/pnpm"
- "/tests/pnpm-package-manager"
- "/tests/yarn"
schedule:
interval: weekly
day: friday
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/__shared-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ jobs:
linter:
uses: hoverkraft-tech/ci-github-common/.github/workflows/linter.yml@198d391bd7046a3c8ca503d3387ad9c5ba8f9f29 # 0.22.0

test-action-dependencies-cache:
name: Test action "dependencies-cache"
needs: linter
uses: ./.github/workflows/__test-action-dependencies-cache.yml

test-action-get-package-manager:
name: Test action "get-package-manager"
needs: linter
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/__test-action-dependencies-cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Internal - Tests for "dependencies-cache" action

on:
workflow_call:

permissions:
contents: read

jobs:
test:
name: Test "dependencies-cache" (${{ matrix.working-directory }})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- working-directory: tests/npm
package-manager: npm

- working-directory: tests/pnpm
package-manager: pnpm

- working-directory: tests/pnpm-package-manager
package-manager: pnpm

- working-directory: tests/yarn
package-manager: yarn
steps:
# jscpd:ignore-start

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- id: setup-node
uses: ./actions/setup-node
with:
working-directory: ${{ matrix.working-directory }}

- name: Check that package manager is the expected one
id: check-package-manager
run: |
if [[ "${{ steps.setup-node.outputs.run-script-command }}" != "${{ matrix.package-manager }}"* ]]; then
echo "Package manager is not ${{ matrix.package-manager }}"
exit 1
fi

# jscpd:ignore-end

- id: get-dependencies-cache
uses: ./actions/dependencies-cache
with:
working-directory: ${{ matrix.working-directory }}
dependencies: |
gatsby
jest
nx
prettier
storybook
unknown

- name: Check "dependencies-cache" configured cache
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const assert = require("assert");
63 changes: 45 additions & 18 deletions .github/workflows/__test-action-get-package-manager.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,65 @@ permissions:
contents: read

jobs:
test-yarn:
name: Tests with Yarn package manager
test:
name: Test "get-package-manager" (${{ matrix.working-directory }})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- working-directory: tests/npm
package-manager: npm
lock-file: package-lock.json
cache-dependency-path: "**/package-lock.json"
install-command: npm ci
run-script-command: npm run

- working-directory: tests/pnpm
package-manager: pnpm
lock-file: pnpm-lock.yaml
cache-dependency-path: "**/pnpm-lock.yaml"
install-command: pnpm install --frozen-lockfile
run-script-command: pnpm

- working-directory: tests/pnpm-package-manager
package-manager: pnpm
lock-file: pnpm-lock.yaml
cache-dependency-path: "**/pnpm-lock.yaml"
install-command: pnpm install --frozen-lockfile
run-script-command: pnpm

- working-directory: tests/yarn
package-manager: yarn
lock-file: yarn.lock
cache-dependency-path: "**/yarn.lock"
install-command: yarn install --frozen-lockfile
run-script-command: yarn
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: rm -f package-lock.json

- id: get-package-manager
uses: ./actions/get-package-manager
with:
working-directory: ${{ matrix.working-directory }}

- name: Check "get-package-manager" outputs
run: |
if [ "${{ steps.get-package-manager.outputs.package-manager }}" != 'yarn' ]; then
if [ "${{ steps.get-package-manager.outputs.package-manager }}" != '${{ matrix.package-manager }}' ]; then
echo "get-package-manager outputs result is not valid"
exit 1
fi

test-npm:
name: Tests with Npm package manager
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: rm -f yarn.lock
if [ "${{ steps.get-package-manager.outputs.cache-dependency-path }}" != '${{ matrix.cache-dependency-path }}' ]; then
echo "get-package-manager outputs cache-dependency-path is not valid"
exit 1
fi

- id: get-package-manager
uses: ./actions/get-package-manager
if [ "${{ steps.get-package-manager.outputs.install-command }}" != '${{ matrix.install-command }}' ]; then
echo "get-package-manager outputs install-command is not valid"
exit 1
fi

- name: Check "get-package-manager" outputs
run: |
if [ "${{ steps.get-package-manager.outputs.package-manager }}" != 'npm' ]; then
echo "get-package-manager outputs result is not valid"
if [ "${{ steps.get-package-manager.outputs.run-script-command }}" != '${{ matrix.run-script-command }}' ]; then
echo "get-package-manager outputs run-script-command is not valid"
exit 1
fi
90 changes: 32 additions & 58 deletions .github/workflows/__test-action-has-installed-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,47 @@ permissions:
contents: read

jobs:
test-yarn:
name: Tests with Yarn package manager
test:
name: Test "has-installed-dependencies" (${{ matrix.working-directory }})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- working-directory: tests/npm
package-manager: npm
lock-file: package-lock.json

- working-directory: tests/pnpm
package-manager: pnpm
lock-file: pnpm-lock.yaml

- working-directory: tests/pnpm-package-manager
package-manager: pnpm
lock-file: pnpm-lock.yaml

- working-directory: tests/yarn
package-manager: yarn
lock-file: yarn.lock
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: rm -f package-lock.json
- id: setup-node
uses: ./actions/setup-node
with:
working-directory: ${{ matrix.working-directory }}

- uses: ./actions/setup-node
- name: Check that package manager is the expected one
id: check-package-manager
run: |
if [[ "${{ steps.setup-node.outputs.run-script-command }}" != "${{ matrix.package-manager }}"* ]]; then
echo "Package manager is not ${{ matrix.package-manager }}"
exit 1
fi

- id: has-installed-dependencies
uses: ./actions/has-installed-dependencies
with:
working-directory: ${{ matrix.working-directory }}
dependencies: |
gatsby
jest
Expand Down Expand Up @@ -59,57 +87,3 @@ jobs:
JSON.stringify(expectedResult),
`"installed-dependencies" output is not valid`
);

test-npm:
name: Tests with Npm package manager
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: rm -f yarn.lock

- uses: ./actions/setup-node

- id: has-installed-dependencies
uses: ./actions/has-installed-dependencies
with:
dependencies: |
nx
gatsby
storybook
prettier
unknown

- name: Check "has-installed-dependencies" outputs
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
// jscpd:ignore-start
const assert = require("assert");

const installedDependenciesOutput = `${{ steps.has-installed-dependencies.outputs.installed-dependencies }}`;
assert(installedDependenciesOutput.length, `"installed-dependencies" output is empty`);

// Check if is valid Json
let installedDependencies = null;
try {
installedDependencies = JSON.parse(installedDependenciesOutput);
} catch (error) {
throw new Error(`"installed-dependencies" output is not a valid JSON: ${error}`);
}

const expectedResult = {
nx: true,
gatsby: true,
storybook: true,
prettier: true,
unknown: false,
};

assert.equal(
JSON.stringify(installedDependencies),
JSON.stringify(expectedResult),
`"installed-dependencies" output is not valid`
);

// jscpd:ignore-end
57 changes: 30 additions & 27 deletions .github/workflows/__test-action-setup-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,45 @@ permissions:
contents: read

jobs:
test-yarn:
name: Tests with Yarn package manager
test:
name: Test "setup-node" (${{ matrix.working-directory }})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- working-directory: tests/npm
package-manager: npm
lock-file: package-lock.json
run-script-command: npm run

- working-directory: tests/pnpm
package-manager: pnpm
lock-file: pnpm-lock.yaml
run-script-command: pnpm

- working-directory: tests/pnpm-package-manager
package-manager: pnpm
lock-file: pnpm-lock.yaml
run-script-command: pnpm

- working-directory: tests/yarn
package-manager: yarn
lock-file: yarn.lock
run-script-command: yarn
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: |
rm -f package-lock.json
echo "lts/*" > .nvmrc
- run: echo "lts/*" > .nvmrc
working-directory: ${{ matrix.working-directory }}

- id: setup-node
uses: ./actions/setup-node
with:
working-directory: ${{ matrix.working-directory }}

- name: Check "setup-node" outputs
run: |
if [ "${{ steps.setup-node.outputs.run-script-command }}" != 'yarn' ]; then
echo "setup-node outputs result is not valid"
exit 1
fi

test-npm:
name: Tests with Npm package manager
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- run: |
rm -f yarn.lock
echo "lts/*" > .nvmrc

- id: setup-node
uses: ./actions/setup-node

- name: Check "setup-node" outputs
run: |
if [ "${{ steps.setup-node.outputs.run-script-command }}" != 'npm run' ]; then
echo "setup-node outputs result is not valid"
if [ "${{ steps.setup-node.outputs.run-script-command }}" != "${{ matrix.run-script-command }}" ]; then
echo "get-package-manager outputs run-script-command is not valid"
exit 1
fi
Loading
Loading