Skip to content

Commit

Permalink
Code refactor (#269)
Browse files Browse the repository at this point in the history
  • Loading branch information
paescuj committed Sep 22, 2022
1 parent 8e97df0 commit 16e4525
Show file tree
Hide file tree
Showing 9 changed files with 1,188 additions and 1,199 deletions.
110 changes: 58 additions & 52 deletions .eslintrc.json
@@ -1,54 +1,60 @@
{
"plugins": ["@typescript-eslint"],
"extends": ["plugin:github/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 9,
"sourceType": "module",
"project": "./tsconfig.json"
},
"rules": {
"i18n-text/no-en": "off",
"eslint-comments/no-use": "off",
"import/no-namespace": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/ban-ts-comment": "error",
"camelcase": "off",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
"@typescript-eslint/func-call-spacing": ["error", "never"],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-extraneous-class": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-inferrable-types": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "warn",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-for-of": "warn",
"@typescript-eslint/prefer-function-type": "warn",
"@typescript-eslint/prefer-includes": "error",
"@typescript-eslint/prefer-string-starts-ends-with": "error",
"@typescript-eslint/promise-function-async": "error",
"@typescript-eslint/require-array-sort-compare": "error",
"@typescript-eslint/restrict-plus-operands": "error",
"semi": "off",
"@typescript-eslint/semi": ["error", "never"],
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unbound-method": "error"
},
"env": {
"node": true,
"es6": true
}
"plugins": ["@typescript-eslint"],
"extends": ["plugin:github/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 9,
"sourceType": "module",
"project": "./tsconfig.json"
},
"rules": {
"i18n-text/no-en": "off",
"eslint-comments/no-use": "off",
"import/no-namespace": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/explicit-member-accessibility": [
"error",
{"accessibility": "no-public"}
],
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/ban-ts-comment": "error",
"camelcase": "off",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/explicit-function-return-type": [
"error",
{"allowExpressions": true}
],
"@typescript-eslint/func-call-spacing": ["error", "never"],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-extraneous-class": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-inferrable-types": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "warn",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-for-of": "warn",
"@typescript-eslint/prefer-function-type": "warn",
"@typescript-eslint/prefer-includes": "error",
"@typescript-eslint/prefer-string-starts-ends-with": "error",
"@typescript-eslint/promise-function-async": "error",
"@typescript-eslint/require-array-sort-compare": "error",
"@typescript-eslint/restrict-plus-operands": "error",
"semi": "off",
"@typescript-eslint/semi": ["error", "never"],
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unbound-method": "error"
},
"env": {
"node": true,
"es6": true
}
}
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Expand Up @@ -4,11 +4,11 @@ updates:
directory: /
schedule:
interval: monthly
time: "04:00"
time: '04:00'

- package-ecosystem: npm
directory: /
schedule:
interval: monthly
time: "04:00"
time: '04:00'
open-pull-requests-limit: 10
1 change: 0 additions & 1 deletion .github/workflows/check-dist.yml
Expand Up @@ -50,4 +50,3 @@ jobs:
with:
name: dist
path: dist/

25 changes: 23 additions & 2 deletions .github/workflows/test.yml
Expand Up @@ -36,7 +36,28 @@ jobs:
concurrent_skipping: 'never'
skip_after_successful_duplicate: 'true'
paths_ignore: '["**/README.md", "**/docs/**"]'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'

- name: Print outputs
run: |
echo '::group::should_skip'
echo '${{ steps.skip_check.outputs.should_skip }}'
echo '::endgroup::'
echo '::group::reason'
echo '${{ steps.skip_check.outputs.reason }}'
echo '::endgroup::'
echo '::group::skipped_by'
echo '${{ toJSON(fromJSON(steps.skip_check.outputs.skipped_by)) }}'
echo '::endgroup::'
echo '::group::paths_result'
echo '${{ toJSON(fromJSON(steps.skip_check.outputs.paths_result)) }}'
echo '::endgroup::'
echo '::group::changed_files'
echo '${{ toJSON(fromJSON(steps.skip_check.outputs.changed_files)) }}'
echo '::endgroup::'
main_job:
needs: pre_job
Expand Down Expand Up @@ -79,10 +100,10 @@ jobs:
cancel_others: 'true'
concurrent_skipping: 'outdated_runs'
skip_after_successful_duplicate: 'true'
# Test 'do_not_skip' with 'pull_request'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'

- name: Simulate task
if: ${{ steps.skip_check.outputs.should_skip == 'false' }}
run: |
echo "Do stuff..." && sleep 30
17 changes: 10 additions & 7 deletions README.md
Expand Up @@ -165,20 +165,20 @@ Returns information about the workflow run which caused the current run to be sk

**Example:**

```jsonc
```json
{
"id": 1709469369,
"runNumber": 737,
"event": "pull_request",
"treeHash": "e3434bb7aeb3047d7df948f09419ac96cf03d73e",
"commitHash": "4a0432e823468ecff81a978165cb35586544c795",
"status": "completed",
"conclusion": "success",
"html_url": "https://github.com/fkirc/skip-duplicate-actions/actions/runs/1709469369",
"htmlUrl": "https://github.com/fkirc/skip-duplicate-actions/actions/runs/1709469369",
"branch": "master",
"repo": "fkirc/skip-duplicate-actions",
"runId": 1709469369,
"workflowId": 2640563,
"createdAt": "2022-01-17T18:56:06Z",
"runNumber": 737
"createdAt": "2022-01-17T18:56:06Z"
}
```

Expand All @@ -195,7 +195,9 @@ Returns information for each configured filter in `paths_filter`.
"frontend": {
"should_skip": true,
"backtrack_count": 1,
"skipped_by": { // Information about the workflow run },
"skipped_by": {
// Information about the workflow run
},
"backend": {
"should_skip": false,
"backtrack_count": 1,
Expand Down Expand Up @@ -230,7 +232,8 @@ You can use `skip-duplicate-actions` to either skip individual steps or entire j
To minimize changes to existing jobs, it is often easier to skip entire jobs.
> **Note**
> - You may need to use [`fromJSON`](https://docs.github.com/en/actions/learn-github-actions/expressions#fromjson) to access properties of object outputs. For example, for `skipped_by.runId`, you can use the expression: `${{ fromJSON(steps.skip_check.outputs.skipped_by).runId }}`.
>
> - You may need to use [`fromJSON`](https://docs.github.com/en/actions/learn-github-actions/expressions#fromjson) to access properties of object outputs. For example, for `skipped_by.id`, you can use the expression: `${{ fromJSON(steps.skip_check.outputs.skipped_by).id }}`.
> - For GitHub repositories where [default permissions](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository) for `GITHUB_TOKEN` has been set to "permissive (read-only)", the following lines must be included in the workflow (see [permissions syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions)):
> ```yaml
> # Minimum permissions required by skip-duplicate-actions
Expand Down

0 comments on commit 16e4525

Please sign in to comment.