Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect cached folders from multiple directories #735

Merged
merged 21 commits into from
Jun 21, 2023

Conversation

dsame
Copy link
Contributor

@dsame dsame commented Apr 10, 2023

Description:

Traverse all the sub directories derived from cache-dependency-path input and add detect all dependencies directories to cache.

The key change is to replace getCacheDirectoryPath with getCacheDirectoriesPaths

The major changes are:

  • modifying interface PackageManagerInfo to have name field (to avoid passing it as a parameter to
    many functions) and replace string property getCacheFolderCommand with a function getCacheFolderPath: (projectDir?: string) => Promise<string>
  • adding a function expandCacheDependencyPath to expand string cache-dependency-path input that can be either
    one file or glob pattern and multiline list of files or glob patterns

The other code changes are clue and mappings from expanded cache-dependency-path to the array of directories to cache.

and minor but worth to be noted change is
src/cache-save.ts

  // TODO: core.getInput has a bug - it can return undefined despite its definition
  //       export declare function getInput(name: string, options?: InputOptions): string;
  const cacheDependencyPath = core.getInput('cache-dependency-path') || '';

Related issue:
link to original issue
link to milestone issue

Check list:

  • Mark if documentation changes are required.
  • Mark if tests were added or updated to cover the changes.

@dsame dsame requested a review from a team as a code owner April 10, 2023 15:08
@dsame dsame changed the title Add project-dir Detect current working directory Apr 11, 2023
kish3499

This comment was marked as spam.

@dsame dsame force-pushed the project-dir branch 6 times, most recently from 3e5c14d to 15c2532 Compare April 19, 2023 14:21
@dsame

This comment was marked as outdated.

src/cache-utils.ts Outdated Show resolved Hide resolved
src/cache-utils.ts Outdated Show resolved Hide resolved
src/cache-utils.ts Outdated Show resolved Hide resolved
@dsame dsame force-pushed the project-dir branch 5 times, most recently from bca9c4f to 3527195 Compare April 24, 2023 09:54
@dsame dsame force-pushed the project-dir branch 2 times, most recently from c0ab8e3 to b67cbdb Compare May 8, 2023 16:50
@dsame dsame force-pushed the project-dir branch 4 times, most recently from a690446 to 4ce3252 Compare May 17, 2023 07:58
@dsame dsame changed the title Detect current working directory Detect cached folders from multiple directories May 17, 2023
@dsame dsame force-pushed the project-dir branch 3 times, most recently from b2328f1 to 47381ae Compare May 19, 2023 18:33
@dsame dsame force-pushed the project-dir branch 4 times, most recently from 001e87e to 49b76fb Compare June 6, 2023 13:53
@dsame dsame force-pushed the project-dir branch 6 times, most recently from 2308e96 to e6a6894 Compare June 8, 2023 12:18
src/cache-utils.ts Outdated Show resolved Hide resolved
.github/workflows/e2e-cache.yml Outdated Show resolved Hide resolved
__tests__/cache-save.test.ts Outdated Show resolved Hide resolved
@dsame dsame force-pushed the project-dir branch 3 times, most recently from 8951c11 to f792668 Compare June 16, 2023 12:45
Copy link
Contributor

@marko-zivic-93 marko-zivic-93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! :)

@MaksimZhukov MaksimZhukov merged commit 8170e22 into actions:main Jun 21, 2023
CrispyBaguette pushed a commit to CrispyBaguette/wasm-palette-converter that referenced this pull request Nov 8, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://github.com/actions/setup-node) | action | major | `v2.5.2` -> `v4.1.0` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

### [`v4.1.0`](https://github.com/actions/setup-node/releases/tag/v4.1.0)

[Compare Source](actions/setup-node@v4.0.4...v4.1.0)

#### What's Changed

-   Resolve High Security Alerts by upgrading Dependencies by [@&#8203;aparnajyothi-y](https://github.com/aparnajyothi-y) in actions/setup-node#1132
-   Upgrade IA Publish by [@&#8203;Jcambass](https://github.com/Jcambass) in actions/setup-node#1134
-   Revise `isGhes` logic by [@&#8203;jww3](https://github.com/jww3) in actions/setup-node#1148
-   Add architecture to cache key by [@&#8203;pengx17](https://github.com/pengx17) in actions/setup-node#843
    This addresses issues with caching by adding the architecture (arch) to the cache key, ensuring that cache keys are accurate to prevent conflicts.
    Note: This change may break previous cache keys as they will no longer be compatible with the new format.

#### New Contributors

-   [@&#8203;jww3](https://github.com/jww3) made their first contribution in actions/setup-node#1148
-   [@&#8203;pengx17](https://github.com/pengx17) made their first contribution in actions/setup-node#843

**Full Changelog**: actions/setup-node@v4...v4.1.0

### [`v4.0.4`](https://github.com/actions/setup-node/releases/tag/v4.0.4)

[Compare Source](actions/setup-node@v4.0.3...v4.0.4)

#### What's Changed

-   Add workflow file for publishing releases to immutable action package by [@&#8203;Jcambass](https://github.com/Jcambass) in actions/setup-node#1125
-   Enhance Windows ARM64 Setup and Update micromatch Dependency by [@&#8203;priyagupta108](https://github.com/priyagupta108) in actions/setup-node#1126

##### Documentation changes:

-   Documentation update in the README file by [@&#8203;suyashgaonkar](https://github.com/suyashgaonkar) in actions/setup-node#1106
-   Correct invalid 'lts' version string reference by [@&#8203;fulldecent](https://github.com/fulldecent) in actions/setup-node#1124

#### New Contributors

-   [@&#8203;suyashgaonkar](https://github.com/suyashgaonkar) made their first contribution in actions/setup-node#1106
-   [@&#8203;priyagupta108](https://github.com/priyagupta108) made their first contribution in actions/setup-node#1126
-   [@&#8203;Jcambass](https://github.com/Jcambass) made their first contribution in actions/setup-node#1125
-   [@&#8203;fulldecent](https://github.com/fulldecent) made their first contribution in actions/setup-node#1124

**Full Changelog**: actions/setup-node@v4...v4.0.4

### [`v4.0.3`](https://github.com/actions/setup-node/releases/tag/v4.0.3)

[Compare Source](actions/setup-node@v4.0.2...v4.0.3)

#### What's Changed

##### Bug fixes:

-   Fix macos latest check failures by [@&#8203;HarithaVattikuti](https://github.com/HarithaVattikuti) in actions/setup-node#1041

##### Documentation changes:

-   Documentation update to update default Node version to 20 by [@&#8203;bengreeley](https://github.com/bengreeley) in actions/setup-node#949

##### Dependency  updates:

-   Bump undici from 5.26.5 to 5.28.3 by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#965
-   Bump braces from 3.0.2 to 3.0.3 and other dependency updates by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#1087

#### New Contributors

-   [@&#8203;bengreeley](https://github.com/bengreeley) made their first contribution in actions/setup-node#949
-   [@&#8203;HarithaVattikuti](https://github.com/HarithaVattikuti) made their first contribution in actions/setup-node#1041

**Full Changelog**: actions/setup-node@v4...v4.0.3

### [`v4.0.2`](https://github.com/actions/setup-node/releases/tag/v4.0.2)

[Compare Source](actions/setup-node@v4.0.1...v4.0.2)

#### What's Changed

-   Add support for `volta.extends` by [@&#8203;ThisIsManta](https://github.com/ThisIsManta) in actions/setup-node#921
-   Add support for arm64 Windows by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#927

#### New Contributors

-   [@&#8203;ThisIsManta](https://github.com/ThisIsManta) made their first contribution in actions/setup-node#921

**Full Changelog**: actions/setup-node@v4.0.1...v4.0.2

### [`v4.0.1`](https://github.com/actions/setup-node/releases/tag/v4.0.1)

[Compare Source](actions/setup-node@v4.0.0...v4.0.1)

#### What's Changed

-   Ignore engines in Yarn 1 e2e-cache tests by [@&#8203;trivikr](https://github.com/trivikr) in actions/setup-node#882
-   Update setup-node references in the README.md file to setup-node@v4 by [@&#8203;jwetzell](https://github.com/jwetzell) in actions/setup-node#884
-   Update reusable workflows to use Node.js v20 by [@&#8203;MaksimZhukov](https://github.com/MaksimZhukov) in actions/setup-node#889
-   Add fix for cache to resolve slow post action step by [@&#8203;aparnajyothi-y](https://github.com/aparnajyothi-y) in actions/setup-node#917
-   Fix README.md by [@&#8203;takayamaki](https://github.com/takayamaki) in actions/setup-node#898
-   Add `package.json` to `node-version-file` list of examples. by [@&#8203;TWiStErRob](https://github.com/TWiStErRob) in actions/setup-node#879
-   Fix node-version-file interprets entire package.json as a version by [@&#8203;NullVoxPopuli](https://github.com/NullVoxPopuli) in actions/setup-node#865

#### New Contributors

-   [@&#8203;trivikr](https://github.com/trivikr) made their first contribution in actions/setup-node#882
-   [@&#8203;jwetzell](https://github.com/jwetzell) made their first contribution in actions/setup-node#884
-   [@&#8203;aparnajyothi-y](https://github.com/aparnajyothi-y) made their first contribution in actions/setup-node#917
-   [@&#8203;takayamaki](https://github.com/takayamaki) made their first contribution in actions/setup-node#898
-   [@&#8203;TWiStErRob](https://github.com/TWiStErRob) made their first contribution in actions/setup-node#879
-   [@&#8203;NullVoxPopuli](https://github.com/NullVoxPopuli) made their first contribution in actions/setup-node#865

**Full Changelog**: actions/setup-node@v4...v4.0.1

### [`v4.0.0`](https://github.com/actions/setup-node/releases/tag/v4.0.0)

[Compare Source](actions/setup-node@v3.8.2...v4.0.0)

#### What's Changed

In scope of this release we changed version of node runtime for action from node16 to node20 and updated dependencies in actions/setup-node#866

Besides, release contains such changes as:

-   Upgrade actions/checkout to v4 by [@&#8203;gmembre-zenika](https://github.com/gmembre-zenika) in actions/setup-node#868
-   Update actions/checkout for documentation and yaml by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#876

#### New Contributors

-   [@&#8203;gmembre-zenika](https://github.com/gmembre-zenika) made their first contribution in actions/setup-node#868

**Full Changelog**: actions/setup-node@v3...v4.0.0

### [`v3.8.2`](https://github.com/actions/setup-node/releases/tag/v3.8.2)

[Compare Source](actions/setup-node@v3.8.1...v3.8.2)

#### What's Changed

-   Update semver by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#861
-   Update temp directory creation by [@&#8203;nikolai-laevskii](https://github.com/nikolai-laevskii) in actions/setup-node#859
-   Bump [@&#8203;babel/traverse](https://github.com/babel/traverse) from 7.15.4 to 7.23.2 by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#870
-   Add notice about binaries not being updated yet by [@&#8203;nikolai-laevskii](https://github.com/nikolai-laevskii) in actions/setup-node#872
-   Update toolkit cache and core by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) and [@&#8203;seongwon-privatenote](https://github.com/seongwon-privatenote) in actions/setup-node#875

**Full Changelog**: actions/setup-node@v3...v3.8.2

### [`v3.8.1`](https://github.com/actions/setup-node/releases/tag/v3.8.1)

[Compare Source](actions/setup-node@v3.8.0...v3.8.1)

#### What's Changed

In scope of this release, the filter was removed within the cache-save step by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#831. It is filtered and checked in the toolkit/cache library.

**Full Changelog**: actions/setup-node@v3...v3.8.1

### [`v3.8.0`](https://github.com/actions/setup-node/releases/tag/v3.8.0)

[Compare Source](actions/setup-node@v3.7.0...v3.8.0)

#### What's Changed

##### Bug fixes:

-   Add check for existing paths by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#803
-   Resolve SymbolicLink by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#809
-   Change passing logic for cache input by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#816
-   Fix armv7 cache issue by [@&#8203;louislam](https://github.com/louislam) in actions/setup-node#794
-   Update check-dist workflow name by [@&#8203;sinchang](https://github.com/sinchang) in actions/setup-node#710

##### Feature implementations:

-   feat: handling the case where "node" is used for tool-versions file. by [@&#8203;xytis](https://github.com/xytis) in actions/setup-node#812

##### Documentation changes:

-   Refer to semver package name in README.md by [@&#8203;olleolleolle](https://github.com/olleolleolle) in actions/setup-node#808

##### Update dependencies:

-   Update toolkit cache to fix zstd by [@&#8203;dmitry-shibanov](https://github.com/dmitry-shibanov) in actions/setup-node#804
-   Bump tough-cookie and [@&#8203;azure/ms-rest-js](https://github.com/azure/ms-rest-js) by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#802
-   Bump semver from 6.1.2 to 6.3.1 by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#807
-   Bump word-wrap from 1.2.3 to 1.2.4 by [@&#8203;dependabot](https://github.com/dependabot) in actions/setup-node#815

#### New Contributors

-   [@&#8203;olleolleolle](https://github.com/olleolleolle) made their first contribution in actions/setup-node#808
-   [@&#8203;louislam](https://github.com/louislam) made their first contribution in actions/setup-node#794
-   [@&#8203;sinchang](https://github.com/sinchang) made their first contribution in actions/setup-node#710
-   [@&#8203;xytis](https://github.com/xytis) made their first contribution in actions/setup-node#812

**Full Changelog**: actions/setup-node@v3...v3.8.0

### [`v3.7.0`](https://github.com/actions/setup-node/releases/tag/v3.7.0)

[Compare Source](actions/setup-node@v3.6.0...v3.7.0)

#### What's Changed

In scope of this release we added a logic to save an additional cache path for yarn 3 ([related pull request](actions/setup-node#744) and [feature request](actions/setup-node#325)). Moreover, we added functionality to use all the sub directories derived from `cache-dependency-path` input and add detect all dependencies directories to cache (related [pull request](actions/setup-node#735) and [feature request](actions/setup-node#488)).

##### Besides, we made such changes as:

-   Replace workflow badge with new badge by [@&#8203;jongwooo](https://github.com/jongwooo) in actions/setup-node#653
-   Fix a minor typo by [@&#8203;phanan](https://github.com/phanan) in actions/setup-node#662
-   docs: fix typo in advanced-usage.md by [@&#8203;remarkablemark](https://github.com/remarkablemark) in actions/setup-node#697
-   bugfix: Don't attempt to use Windows fallbacks on non-Windows OSes by [@&#8203;domdomegg](https://github.com/domdomegg) in actions/setup-node#718
-   Update to node 18.x by [@&#8203;feelepxyz](https://github.com/feelepxyz) in actions/setup-node#751
-   Remove implicit dependencies by [@&#8203;nikolai-laevskii](https://github.com/nikolai-laevskii) in actions/setup-node#758
-   Fix description about ensuring workflow access to private package by [@&#8203;x86chi](https://github.com/x86chi) in actions/setup-node#704

#### New Contributors

-   [@&#8203;jongwooo](https://github.com/jongwooo) made their first contribution in actions/setup-node#653
-   [@&#8203;phanan](https://github.com/phanan) made their first contribution in actions/setup-node#662
-   [@&#8203;remarkablemark](https://github.com/remarkablemark) made their first contribution in actions/setup-node#697
-   [@&#8203;domdomegg](https://github.com/domdomegg) made their first contribution in actions/setup-node#718
-   [@&#8203;feelepxyz](https://github.com/feelepxyz) made their first contribution in actions/setup-node#751
-   [@&#8203;nikolai-laevskii](https://github.com/nikolai-laevskii) made their first contribution in actions/setup-node#758
-   [@&#8203;x86chi](https://github.com/x86chi) made their first contribution in actions/setup-node#704

**Full Changelog**: actions/setup-node@v3...v3.7.0

### [`v3.6.0`](https://github.com/actions/setup-node/releases/tag/v3.6.0): Add Support for Nightly, Canary and RC builds for Node.js

[Compare Source](actions/setup-node@v3.5.1...v3.6.0)

In scope of this release we added support to download nightly, rc (actions/setup-node#611) and canary (actions/setup-node#619) Node.js distributions.

##### For nightly versions:

```yaml
jobs:
  build:
    runs-on: ubuntu-latest
    name: Node sample
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '16-nightly'
      - run: npm ci
      - run: npm test
```

##### For canary versions:

```yaml
jobs:
  build:
    runs-on: ubuntu-latest
    name: Node sample
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '16-v8-canary’
      - run: npm ci
      - run: npm test
```

##### For rc versions:

```yaml
jobs:
  build:
    runs-on: ubuntu-latest
    name: Node sample
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '16.0.0-rc.1’
      - run: npm ci
      - run: npm test
```

Note: For more examples please refer to [documentation](https://github.com/actions/setup-node#advanced-usage).

Besides, we added the following changes as:

-   Updated minimatch: actions/setup-node#608
-   Fixed extra newline character in version output when reading from a file: actions/setup-node#625
-   Passed the token input through on GHES: actions/setup-node#595
-   Fixed issue with scoped registries are duplicated in npmrc: actions/setup-node#637

### [`v3.5.1`](https://github.com/actions/setup-node/releases/tag/v3.5.1): Update @&#8203;actions/core and Print Node, Npm, Yarn versions

[Compare Source](actions/setup-node@v3.5.0...v3.5.1)

In scope of this release we updated [actions/core to 1.10.0](actions/setup-node#587). Moreover, we added logic [to print Nodejs, Npm, Yarn versions](actions/setup-node#368) after installation.

### [`v3.5.0`](https://github.com/actions/setup-node/releases/tag/v3.5.0): Add support for engines.node and Volta

[Compare Source](actions/setup-node@v3.4.1...v3.5.0)

In scope of this release we add support for engines.node. The action will be able to grab the version form package.json#engines.node. actions/setup-node#485. Moreover, we [added support for Volta](actions/setup-node#532)

Besides, we updated [@&#8203;actions/core to 1.9.1](actions/setup-node#574) and [@&#8203;actions/cache to 3.0.4](actions/setup-node#573)

### [`v3.4.1`](https://github.com/actions/setup-node/releases/tag/v3.4.1): Fix pnpm output and node-version  output issues

[Compare Source](actions/setup-node@v3.4.0...v3.4.1)

In scope of this release we fixed bugs related to the pnpm 7.5.1 output issue from `pnpm store path` actions/setup-node#545. Moreover we fixed the issue with falling on node-version output actions/setup-node#540.

### [`v3.4.0`](https://github.com/actions/setup-node/releases/tag/v3.4.0): Add support for asdf format and update actions/cache version to 3.0.0

[Compare Source](actions/setup-node@v3.3.0...v3.4.0)

In scope of this release we updated `actions/cache` package as the new version contains fixes for [caching error handling](actions/setup-node#526). Moreover, we added support for asdf format as Node.js version file actions/setup-node#373. Besides, we introduced new output [node-version](actions/setup-node#534) and added `npm-shrinkwrap.json` to dependency file patterns: actions/setup-node#439

### [`v3.3.0`](https://github.com/actions/setup-node/releases/tag/v3.3.0): Add support for lts/-n aliases

[Compare Source](actions/setup-node@v3.2.0...v3.3.0)

In scope of this release we added support for `lts/-n` aliases, improve logic for `current`, `latest` and `node` aliases to handle them from `toolcache`, update `ncc` package.

##### Support of lts/-n aliases

-   Related pull request: actions/setup-node#481
-   Related issue: actions/setup-node#26

```yaml
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
  with:
    node-version: lts/-1
- run: npm ci
- run: npm test
```

##### Minor improvements

-   Update zeit/ncc to vercel/ncc: actions/setup-node#476
-   Get latest version from cache if exists: actions/setup-node#496

### [`v3.2.0`](https://github.com/actions/setup-node/releases/tag/v3.2.0): Add current, node, latest aliases

[Compare Source](actions/setup-node@v3.1.1...v3.2.0)

In scope of this release we added new aliases to install the latest Node.js version. actions/setup-node#483

```yml
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
  with:
    node-version: current
- run: npm ci
- run: npm test
```

### [`v3.1.1`](https://github.com/actions/setup-node/releases/tag/v3.1.1): Update actions/cache version to 2.0.2

[Compare Source](actions/setup-node@v3.1.0...v3.1.1)

In scope of this release we updated `actions/cache` package as the new version contains fixes related to GHES 3.5 (actions/setup-node#460)

### [`v3.1.0`](https://github.com/actions/setup-node/releases/tag/v3.1.0): Add caching support on GHES 3.5

[Compare Source](actions/setup-node@v3.0.0...v3.1.0)

In scope of this release we added [support for caching from GHES 3.5](actions/setup-node#452) and fixed download issue for files > 2GB during restore. Besides, we updated `actions/cache` dependency to 2.0.0 version.

### [`v3.0.0`](https://github.com/actions/setup-node/releases/tag/v3.0.0)

[Compare Source](actions/setup-node@v2.5.2...v3.0.0)

In scope of this release we changed version of the runtime Node.js for the setup-node action and updated package-lock.json file to  v2.

##### Breaking Changes

-   With the update to Node 16 in actions/setup-node#414, all scripts will now be run with Node 16 rather than Node 12.
-   We removed deprecated `version` input (actions/setup-node#424). Please use `node-version` input instead.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44LjAiLCJ1cGRhdGVkSW5WZXIiOiIzOS44LjAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: https://gitea.bruyant.xyz/alexandre/PaletteSwitcher/pulls/56
Co-authored-by: Renovate <[email protected]>
Co-committed-by: Renovate <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants