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

[Renovate] Update dependency actionlint to v1.7.0 #252

Merged
merged 1 commit into from
May 9, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 8, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
actionlint minor 1.6.27 -> 1.7.0

Release Notes

rhysd/actionlint (actionlint)

v1.7.0

Compare Source

  • From this version, actionlint starts to check action.yml (or action.yaml), which is a metadata file for action. 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)
```yaml
- 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 `pyflake` rule.
- Add workaround actionlint reports that `dorny/paths-filter`'s `predicate-quantifier` input is not defined. (#​416)
- Fix the type of a conditional expression by comparison operators is wider than expected by implementing type narrowing. (#​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)
```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 pyflake when checking a Python script in `run:`. (#&#8203;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.
  • Update Go dependencies to the latest.
    • peaceiris/actions-hugo
    • actions/attest-build-provenance
    • actions/add-to-project
    • octokit/graphql-action
  • 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 versions in the usage document. (#​413, thanks @​naglis)

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.


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

This PR has been generated by Mend Renovate. View repository job log here.

@kevinmatthes kevinmatthes merged commit ec3b5fe into main May 9, 2024
27 checks passed
@kevinmatthes kevinmatthes deleted the renovate/actionlint-1.x branch May 9, 2024 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant