|
1 | | -<!-- TODO: Replace the content of this file with the new project description. --> |
| 1 | +# Delete Blacksmith Cache Action |
2 | 2 |
|
3 | | -# Action Starter |
4 | | - |
5 | | -A minimalist template for starting a new [GitHub Action](https://github.com/features/actions) project. |
6 | | - |
7 | | -This template provides a basic GitHub Action project containing a sample [JavaScript action](https://docs.github.com/en/actions/sharing-automations/creating-actions/creating-a-javascript-action) written in [TypeScript](https://www.typescriptlang.org/), with built-in support for formatting, linting, testing, and continuous integration. |
8 | | - |
9 | | -## Key Features |
10 | | - |
11 | | -- Minimal GitHub Action project written in TypeScript with [ESM](https://nodejs.org/api/esm.html) support. |
12 | | -- Uses [Yarn](https://yarnpkg.com/) as the package manager with [Plug'n'Play](https://yarnpkg.com/features/pnp) support. |
13 | | -- Supports formatting with [Prettier](https://prettier.io/), linting with [ESLint](https://eslint.org/), and testing with [Jest](https://jestjs.io/). |
14 | | -- Preconfigured workflows for [Dependabot](https://docs.github.com/en/code-security/dependabot) and [GitHub Actions](https://github.com/features/actions). |
| 3 | +A GitHub Action to delete caches from Blacksmith's cache storage. This action allows you to delete either a specific cache version or all versions of a cache key. |
15 | 4 |
|
16 | 5 | ## Usage |
17 | 6 |
|
18 | | -This guide explains how to use this template to start a new GitHub Action project, from creation to release. |
19 | | - |
20 | | -### Create a New Project |
21 | | - |
22 | | -Follow [this link](https://github.com/new?template_name=action-starter&template_owner=threeal) to create a new project based on this template. For more information about creating a repository from a template on GitHub, refer to [this documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template). |
23 | | - |
24 | | -Alternatively, you can clone this repository locally to begin using this template. |
25 | | - |
26 | | -### Choose a License |
27 | | - |
28 | | -By default, this template is [unlicensed](https://unlicense.org/). Before modifying this template, replace the [`LICENSE`](./LICENSE) file with the license to be used by the new project. For more information about licensing a repository, refer to [this documentation](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository). |
29 | | - |
30 | | -Alternatively, you can remove the `LICENSE` file or leave it as-is to keep the new project unlicensed. |
31 | | - |
32 | | -### Update Project Information |
33 | | - |
34 | | -To replace the sample information in this template with details about your new project, complete the following steps: |
35 | | - |
36 | | -- Replace the content of this [`README.md`](./README.md) file with a description of the new project. For more information on adding READMEs to a project, refer to [this documentation](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes). |
37 | | -- Modify the action metadata in the [`action.yml`](./action.yml) file according to the new project specifications. For more details on the action metadata, refer to [this documentation](https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions). |
38 | | - |
39 | | -> Note: You can also search for `TODO` comments for a list of information that needs to be replaced. |
40 | | -
|
41 | | -### Set Up Tools |
42 | | - |
43 | | -It is recommended to use [nvm](https://github.com/nvm-sh/nvm) to manage the Node.js version in the project. By default, this template uses the Node.js version specified in the [`.nvmrc`](./.nvmrc) file. Use the following command to install and use the correct Node.js version with nvm: |
44 | | - |
45 | | -```sh |
46 | | -nvm install |
47 | | -``` |
48 | | - |
49 | | -This template uses [Yarn](https://yarnpkg.com/) with [Plug'n'Play](https://yarnpkg.com/features/pnp) support as the package manager. If Yarn is not yet enabled, run the following command: |
50 | | - |
51 | | -```sh |
52 | | -corepack enable yarn |
53 | | -``` |
54 | | - |
55 | | -Then, install the project dependencies with: |
56 | | - |
57 | | -```sh |
58 | | -yarn install |
| 7 | +```yaml |
| 8 | +- name: Delete Cache |
| 9 | + uses: useblacksmith/cache-delete@v1 |
| 10 | + with: |
| 11 | + key: Linux-composer-ecf6e2e236589e4d34ba89662b6bc2afe8e15237cd19a13df9dc0cb599ff4826 |
| 12 | + version: v213asda2cf # Optional: specific version to delete |
59 | 13 | ``` |
60 | 14 |
|
61 | | -For more information on Yarn, such as adding dependencies or running tools, refer to [this documentation](https://yarnpkg.com/getting-started). |
| 15 | +## Inputs |
62 | 16 |
|
63 | | -### Developing the Action |
| 17 | +| Input | Description | Required | |
| 18 | +| --------- | --------------------------------------- | -------- | |
| 19 | +| `key` | The cache key to delete | Yes | |
| 20 | +| `version` | Specific version of the cache to delete | No | |
64 | 21 |
|
65 | | -Write the logic for the action in the [`src/main.ts`](./src/main.ts) file according to the project requirements. If you're new to [TypeScript](https://www.typescriptlang.org/), refer to [this documentation](https://www.typescriptlang.org/docs/) for guidance. |
| 22 | +## Examples |
66 | 23 |
|
67 | | -If the action will support pre- and post-steps, additional files like `src/pre.ts` and `src/post.ts` can be added. Just make sure to update the Rollup configuration in the [`rollup.config.js`](./rollup.config.js) file and the action metadata in the [`action.yml`](./action.yml) file. |
| 24 | +### Delete All Versions of a Cache |
68 | 25 |
|
69 | | -Once the code is written, format it with: |
70 | | - |
71 | | -```sh |
72 | | -yarn format |
73 | | -``` |
74 | | - |
75 | | -Then, check linting with: |
76 | | - |
77 | | -```sh |
78 | | -yarn lint |
| 26 | +```yaml |
| 27 | +- name: Delete All Cache Versions |
| 28 | + uses: useblacksmith/cache-delete@v1 |
| 29 | + with: |
| 30 | + key: npm-cache |
79 | 31 | ``` |
80 | 32 |
|
81 | | -Lastly, build and bundle the action files with: |
| 33 | +### Delete a Specific Cache Version |
82 | 34 |
|
83 | | -```sh |
84 | | -yarn build |
| 35 | +```yaml |
| 36 | +- name: Delete Specific Cache Version |
| 37 | + uses: useblacksmith/cache-delete@v1 |
| 38 | + with: |
| 39 | + key: npm-cache |
| 40 | + version: v1.0 |
85 | 41 | ``` |
86 | 42 |
|
87 | | -### Testing the Action |
| 43 | +## Error Handling |
88 | 44 |
|
89 | | -Test files in this template are named `*.test.ts` and typically correspond to the source files being tested. This template uses [Jest](https://jestjs.io/) as the testing framework. For more information on testing with Jest, refer to [this documentation](https://jestjs.io/docs/getting-started). |
90 | | - |
91 | | -After creating your test files, run tests with: |
92 | | - |
93 | | -```sh |
94 | | -yarn test |
95 | | -``` |
| 45 | +The action will: |
96 | 46 |
|
97 | | -Additionally, you can test the action by running it directly from the GitHub workflow as specified in the [`.github/workflows/test.yaml`](./.github/workflows/test.yaml) file. |
| 47 | +- Fail if the cache deletion request fails (non-404 error) |
| 48 | +- Log a message if the cache is not found (404) |
| 49 | +- Successfully complete if the cache is deleted |
98 | 50 |
|
99 | | -### Release the Action |
| 51 | +## License |
100 | 52 |
|
101 | | -When the project is complete, release and publish it from the project repository page on GitHub. For more information on releasing a project, refer to [this documentation](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). For more information on publishing GitHub actions, refer to [this documentation](https://docs.github.com/en/actions/sharing-automations/creating-actions/publishing-actions-in-github-marketplace). |
| 53 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
0 commit comments