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

chore(deps): update pre-commit hook rhysd/actionlint to v1.7.0 #17

Merged
merged 1 commit into from
May 20, 2024

Conversation

open-turo-bot
Copy link
Contributor

This PR contains the following updates:

Package Type Update Change
rhysd/actionlint repository minor v1.6.27 -> v1.7.0

Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.


Release Notes

rhysd/actionlint (rhysd/actionlint)

v1.7.0

Compare Source

  • From this version, actionlint starts to check action metadata file action.yml (or action.yaml). At this point, only very basic checks are implemented and contents of steps: are not checked yet.
    • It checks properties under runs: section (e.g. main: can be specified when it is a JavaScript action), branding: properties, and so on.
      name: 'My action'
      author: '...'

ERROR: 'description' section is missing

branding:

ERROR: Invalid icon name

  icon: dog

runs:

ERROR: Node.js runtime version is too old

  using: 'node12'

ERROR: The source file being run by this action does not exist

  main: 'this-file-does-not-exist.js'

ERROR: 'env' configuration is only allowed for Docker actions

  env:
    SOME_VAR: SOME_VALUE
```
  • actionlint still focuses on checking workflow files. So there is no way to directly specify action.yml as an argument of actionlint command. actionlint checks all local actions which are used by given workflows. If you want to use actionlint for your action development, prepare a test/example workflow which uses your action, and check it with actionlint instead.
  • Checks for steps: contents are planned to be implemented. Since several differences are expected between steps: in workflow file and steps: in action metadata file (e.g. available contexts), the implementation is delayed to later version. And the current implementation of action metadata parser is ad hoc. I'm planning a large refactorying and breaking changes Go API around it are expected.
  • Add runner.environment property. (#​412)
    - run: echo 'Run by GitHub-hosted runner'
      if: runner.environment == 'github-hosted'
  • Using outdated popular actions is now detected at error. See the document for more details.
    • Here 'outdated' means actions which use runtimes no longer supported by GitHub-hosted runners such as node12.

ERROR: actions/checkout@v2 is using the outdated runner 'node12'

- uses: actions/checkout@v2
```
  • Support attestations permission which was recently added to GitHub Actions as beta. (#​418, thanks @​bdehamer)
    permissions:
      id-token: write
      contents: read
      attestations: write
  • Check comparison expressions more strictly. Arbitrary types of operands can be compared as the official document explains. However, comparisons between some types are actually meaningless because the values are converted to numbers implicitly. actionlint catches such meaningless comparisons as errors. Please see the check document for more details.
    on:
      workflow_call:
        inputs:
          timeout:
            type: boolean
    
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - run: echo 'called!'

ERROR: Comparing string to object is always evaluated to false

      if: ${{ github.event == 'workflow_call' }}
    - run: echo 'timeout is too long'

ERROR: Comparing boolean value with > doesn't make sense

      if: ${{ inputs.timeout > 60 }}
- Follow the update that `macos-latest` is now an alias to `macos-14` runner.
- Support a custom python shell by `pyflakes` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. ([#​416](https://togithub.com/rhysd/actionlint/issues/416))
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. ([#​384](https://togithub.com/rhysd/actionlint/issues/384))
- For example, the type of following expression should be `number` but it was actually `string | number` and actionlint complained that `timeout-minutes` must take a number value.
  ```yaml
  timeout-minutes: ${{ env.FOO && 10 || 60 }}
  ```
- Fix `${{ }}` placeholder is not available at `jobs.<job_id>.services`. ([#&#8203;402](https://togithub.com/rhysd/actionlint/issues/402))
```yaml
jobs:
  test:
    services: ${{ fromJSON('...') }}
    runs-on: ubuntu-latest
    steps:
      - run: ...
  • Do not check outputs of google-github-actions/get-secretmanager-secrets because this action sets outputs dynamically. (#​404)
  • Fix defaults.run is ignored on detecting the shell used in run:. (#​409)
    defaults:
      run:
        shell: pwsh
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:

This was wrongly detected as bash script

    - run: $Env:FOO = "FOO"
- Fix parsing a syntax error reported from pyflakes when checking a Python script in `run:`. ([#&#8203;411](https://togithub.com/rhysd/actionlint/issues/411))
```yaml
- run: print(
  shell: python
  • Skip checking exclude: items in matrix: when they are constructed from ${{ }} dynamically. (#​414)
    matrix:
      foo: ['a', 'b']
      exclude:

actionlint complained this value didn't exist in matrix combinations

  - foo: ${{ env.EXCLUDE_FOO }}
- Fix checking `exclude:` items when `${{ }}` is used in items of nested arrays.
```yaml
matrix:
  foo:
    - ["${{ fromJSON('...') }}"]
  exclude:
### actionlint complained this value didn't match to any matrix combinations
    - foo: ['foo']
  • Update popular actions data set. New major versions are added and the following actions are newly added.
    • peaceiris/actions-hugo
    • actions/attest-build-provenance
    • actions/add-to-project
    • octokit/graphql-action
  • Update Go dependencies to the latest.
  • Reduce the size of actionlint executable by removing redundant data from popular actions data set.
    • x86_64 executable binary size was reduced from 6.9MB to 6.7MB (2.9% smaller).
    • Wasm binary size was reduced from 9.4MB to 8.9MB (5.3% smaller).
  • Describe how to integrate actionlint to Pulsar Edit in the document. (#​408, thanks @​mschuchard)
  • Update outdated action versions in the usage document. (#​413, thanks @​naglis)

[Changes][v1.7.0]


Configuration

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

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


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@open-turo-bot open-turo-bot requested a review from a team as a code owner May 9, 2024 00:11
Copy link

github-actions bot commented May 9, 2024

Release notes preview

No new release will be created.

If you are expecting a release, you will need to either fix a bug or add a feature.
Chores, CI, docs, refactoring, style and other changes will not trigger a release.

@tagoro9 tagoro9 merged commit 61e26ec into main May 20, 2024
2 checks passed
@tagoro9 tagoro9 deleted the c/renovate_all-ci-minor-patch branch May 20, 2024 11:37
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.

3 participants