Git Product home page Git Product logo

clippy-check's Introduction

Rust clippy-check Action

MIT licensed Gitter

Clippy lints in your Pull Requests

This GitHub Action executes clippy and posts all lints as annotations for the pushed commit, as in the live example here.

Screenshot

Example workflow

This example is utilizing toolchain Actions to install the most recent nightly clippy version.

on: push
name: Clippy check
jobs:
  clippy_check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions-rs/toolchain@v1
        with:
            toolchain: nightly
            components: clippy
            override: true
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features

With stable clippy

on: push
name: Clippy check
jobs:
  clippy_check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - run: rustup component add clippy
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features

Inputs

Name Required Description Type Default
token โœ“ GitHub secret token, usually a ${{ secrets.GITHUB_TOKEN }} string
toolchain Rust toolchain to use; override or system default toolchain will be used if omitted string
args Arguments for the cargo clippy command string
use-cross Use cross instead of cargo bool false
name Name of the created GitHub check. If running this action multiple times, each run must have a unique name. string clippy

For extra details about the toolchain, args and use-cross inputs, see cargo Action documentation.

NOTE: if your workflow contains multiple instances of the clippy-check action you will need to give each invocation a unique name, using the name property described above. Check runs must have a unique name, and this prevents a later check run overriding a previous one within the same workflow.

Limitations

Due to token permissions, this Action WILL NOT be able to post clippy annotations for Pull Requests from the forked repositories.

This is a pretty big problem, which can be solved only by Github themselves, see #2 for details.
As a fallback this Action will output all clippy messages into the stdout and fail the result correspondingly.

clippy-check's People

Contributors

dbalcomb avatar dependabot-preview[bot] avatar freebroccolo avatar garyttierney avatar johntitor avatar svartalf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

clippy-check's Issues

Annotations fail on jobs with multiple targets

Workflow file:

on:
  pull_request:
    branches: [ master ]

name: Clippy
jobs:
  rustfmt:
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - uses: actions/checkout@v2
      - run: rustup component add rustfmt
      - run: cargo fmt -- --check
 
  clippy_check:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-2019, ubuntu-latest]
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
            toolchain: nightly
            components: clippy
  
      - uses: actions-rs/clippy-check@v1
        env:
          SQLX_OFFLINE: true
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features -- -D warnings

This will create annotations for the first completed Clippy check, but any others will never finish.

Screenshot_20210417-092702~2
Screenshot_20210417-092713~2

Cannot output to SARIF file

Description

SARIF is the industry standard format for static analysis tool output. Github also adapts SARIF format if your Github workflow generates analysis results in SARIF and upload the file, you can see the results in Github security tab of your repo.

clippy itself does not export the results to SARIF, but there are rust crates can convert clippy's JSON output to SARIF file.
E.g. clippy-sarif @ https://github.com/psastras/sarif-rs

cargo clippy --message-format=json --all-features --message-format=json | clippy-sarif | tee results.sarif | sarif-fmt

I tried to pass in the same arguments to clippy-check action, but it failed to execute.
Please see the details below:

Workflow code

jobs:
  clippy_check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - run: rustup component add clippy
      - run: cargo install clippy-sarif sarif-fmt
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features | clippy-sarif | tee results.sarif | sarif-fmt
      - name: Upload SARIF file
        uses: github/codeql-action/upload-sarif@v1
        with:
          sarif_file: results.sarif

Action output

Run actions-rs/clippy-check@v1
  with:
    token: ***
    args: --all-features | clippy-sarif | tee results.sarif | sarif-fmt
    use-cross: false
    name: clippy
Executing cargo clippy (JSON output)
  /home/runner/.cargo/bin/cargo clippy --message-format=json --all-features | clippy-sarif | tee results.sarif | sarif-fmt
  error: Found argument '|' which wasn't expected, or isn't valid in this context
  
  USAGE:
      cargo check --all-features --message-format <FMT>...
  
  For more information try --help
Clippy results: 0 ICE, 0 errors, 0 warnings, 0 notes, 0 help
Error: Clippy had exited with the 1 exit code

Expected behavior

Expecting the clippy command succeeded and generate a SARIF file named results.sarif.

Additional context

The way it generates SARIF output file uses command pipeline, which clippy-check arguments may not support.
I think either it supports command pipeline in arguments, or handle the pipeline in action itself, user can just enable SARIF output by specifying arguments.

Thanks!

Resource not accessible by integration (no fork involved)

Thank you for actions-rs and actions-rs/clippy-check.

Do the checklist before filing an issue:

Summary:

Workflow code

This is only for "check" job below. Both other jobs (test" and miri, also run with actions-rs`) do run well.

https://github.com/peter-kehl/no_std_rna_slice_patterns/blob/927bf2bcda/.github/workflows/test.yml

It's almost a copy-and-paste (but not a fork) of https://github.com/prokopyl/selfie/blob/726013fc94/.github/workflows/test.yml, except that I use nightly only. Surprisingly, that project's last GitHub actions run (on 28 July 2022) doesn't have a problem with the same job check: https://github.com/prokopyl/selfie/runs/7564839812?check_suite_focus=true.

Action output

https://github.com/peter-kehl/no_std_rna_slice_patterns/runs/8119158815?check_suite_focus=true ->

Run actions-rs/clippy-check@v1
  with:
    token: ***
    args: --all --all-features -- -D warnings
    use-cross: false
    name: clippy
  env:
    CARGO_TERM_COLOR: always
Executing cargo clippy (JSON output)
  /home/runner/.cargo/bin/cargo clippy --message-format=json --all --all-features -- -D warnings
      Checking utils v0.1.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/00_utils)
  {"reason":"compiler-artifact","package_id":"utils 0.1.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/00_utils)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/00_utils/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"utils","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/00_utils/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libutils-266430b361b31970.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-eq_iterator_to_generic_fn v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/16_no_heap-eq_iterator_to_generic_fn)
      Checking no_heap-array-const_generic_limit-bytes-wipe_on_clone v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/08_no_heap-array-const_generic_limit-bytes-wipe_on_clone)
  {"reason":"compiler-artifact","package_id":"no_heap-eq_iterator_to_generic_fn 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/16_no_heap-eq_iterator_to_generic_fn)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/16_no_heap-eq_iterator_to_generic_fn/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-eq_iterator_to_generic_fn","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/16_no_heap-eq_iterator_to_generic_fn/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_eq_iterator_to_generic_fn-5ed4ce97d20388e4.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-slices-iterator_impl v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/13_no_heap-slices-iterator_impl)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_generic_limit-bytes-wipe_on_clone 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/08_no_heap-array-const_generic_limit-bytes-wipe_on_clone)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/08_no_heap-array-const_generic_limit-bytes-wipe_on_clone/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_generic_limit-bytes-wipe_on_clone","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/08_no_heap-array-const_generic_limit-bytes-wipe_on_clone/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_generic_limit_bytes_wipe_on_clone-72716abf0c3ce858.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-eq_dispatch_specialized v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/17_no_heap-eq_dispatch_specialized)
  {"reason":"compiler-artifact","package_id":"no_heap-slices-iterator_impl 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/13_no_heap-slices-iterator_impl)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/13_no_heap-slices-iterator_impl/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-slices-iterator_impl","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/13_no_heap-slices-iterator_impl/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_slices_iterator_impl-7a389bf65a4265b9.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_limit-bytes-wipe_on_mut v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/03_no_heap-array-const_limit-bytes-wipe_on_mut)
  {"reason":"compiler-artifact","package_id":"no_heap-eq_dispatch_specialized 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/17_no_heap-eq_dispatch_specialized)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/17_no_heap-eq_dispatch_specialized/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-eq_dispatch_specialized","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/17_no_heap-eq_dispatch_specialized/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_eq_dispatch_specialized-b6082f3459b1e392.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-slice-pass_in-bytes-wipe_on_mut v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/09_no_heap-slice-pass_in-bytes-wipe_on_mut)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_limit-bytes-wipe_on_mut 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/03_no_heap-array-const_limit-bytes-wipe_on_mut)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/03_no_heap-array-const_limit-bytes-wipe_on_mut/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_limit-bytes-wipe_on_mut","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/03_no_heap-array-const_limit-bytes-wipe_on_mut/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_limit_bytes_wipe_on_mut-318399baf2bbba24.rmeta"],"executable":null,"fresh":false}
      Checking ok_heap-string v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/01_ok_heap-string)
  {"reason":"compiler-artifact","package_id":"no_heap-slice-pass_in-bytes-wipe_on_mut 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/09_no_heap-slice-pass_in-bytes-wipe_on_mut)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/09_no_heap-slice-pass_in-bytes-wipe_on_mut/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-slice-pass_in-bytes-wipe_on_mut","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/09_no_heap-slice-pass_in-bytes-wipe_on_mut/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_slice_pass_in_bytes_wipe_on_mut-8d51ab76edb394b3.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_limit-bytes-wipe_on_clone v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/04_no_heap-array-const_limit-bytes-wipe_on_clone)
  {"reason":"compiler-artifact","package_id":"ok_heap-string 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/01_ok_heap-string)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/01_ok_heap-string/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ok_heap-string","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/01_ok_heap-string/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libok_heap_string-c7f697b7c28ca4e9.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_limit-chars v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/02_no_heap-array-const_limit-chars)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_limit-bytes-wipe_on_clone 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/04_no_heap-array-const_limit-bytes-wipe_on_clone)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/04_no_heap-array-const_limit-bytes-wipe_on_clone/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_limit-bytes-wipe_on_clone","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/04_no_heap-array-const_limit-bytes-wipe_on_clone/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_limit_bytes_wipe_on_clone-7c0ce5fc2a8c9eb1.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_generic_exact-bytes v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/06_no_heap-array-const_generic_exact-bytes)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_limit-chars 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/02_no_heap-array-const_limit-chars)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/02_no_heap-array-const_limit-chars/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_limit-chars","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/02_no_heap-array-const_limit-chars/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_limit_chars-94f250457b0f5eab.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-eq_branch_iterators-dyn_trait v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/14_no_heap-eq_branch_iterators-dyn_trait)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_generic_exact-bytes 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/06_no_heap-array-const_generic_exact-bytes)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/06_no_heap-array-const_generic_exact-bytes/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_generic_exact-bytes","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/06_no_heap-array-const_generic_exact-bytes/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_generic_exact_bytes-32feb69e6abbcfb3.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_generic_limit-bytes-wipe_on_mut v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/07_no_heap-array-const_generic_limit-bytes-wipe_on_mut)
  {"reason":"compiler-artifact","package_id":"no_heap-eq_branch_iterators-dyn_trait 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/14_no_heap-eq_branch_iterators-dyn_trait)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/14_no_heap-eq_branch_iterators-dyn_trait/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-eq_branch_iterators-dyn_trait","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/14_no_heap-eq_branch_iterators-dyn_trait/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_eq_branch_iterators_dyn_trait-89456cb6c64fd4fa.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-eq_branch_iterators-matrix v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/15_no_heap-eq_branch_iterators-matrix)
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_generic_limit-bytes-wipe_on_mut 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/07_no_heap-array-const_generic_limit-bytes-wipe_on_mut)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/07_no_heap-array-const_generic_limit-bytes-wipe_on_mut/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_generic_limit-bytes-wipe_on_mut","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/07_no_heap-array-const_generic_limit-bytes-wipe_on_mut/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_generic_limit_bytes_wipe_on_mut-45786078ae9e097b.rmeta"],"executable":null,"fresh":false}
      Checking ok_heap-slices-box_dyn_trait-map v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/11_ok_heap-slices-box_dyn_trait-map)
  {"reason":"compiler-artifact","package_id":"no_heap-eq_branch_iterators-matrix 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/15_no_heap-eq_branch_iterators-matrix)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/15_no_heap-eq_branch_iterators-matrix/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-eq_branch_iterators-matrix","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/15_no_heap-eq_branch_iterators-matrix/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_eq_branch_iterators_matrix-0b4067e9f1876a56.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-slices-iterator_enum v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/12_no_heap-slices-iterator_enum)
  {"reason":"compiler-artifact","package_id":"ok_heap-slices-box_dyn_trait-map 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/11_ok_heap-slices-box_dyn_trait-map)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/11_ok_heap-slices-box_dyn_trait-map/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ok_heap-slices-box_dyn_trait-map","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/11_ok_heap-slices-box_dyn_trait-map/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libok_heap_slices_box_dyn_trait_map-31445418bd131d2c.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-slice-pass_in-bytes-wipe_on_drop v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/10_no_heap-slice-pass_in-bytes-wipe_on_drop)
  {"reason":"compiler-artifact","package_id":"no_heap-slices-iterator_enum 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/12_no_heap-slices-iterator_enum)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/12_no_heap-slices-iterator_enum/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-slices-iterator_enum","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/12_no_heap-slices-iterator_enum/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_slices_iterator_enum-4e67853c07e89a78.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-eq_dispatch_universal v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/18_no_heap-eq_dispatch_universal)
  {"reason":"compiler-artifact","package_id":"no_heap-slice-pass_in-bytes-wipe_on_drop 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/10_no_heap-slice-pass_in-bytes-wipe_on_drop)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/10_no_heap-slice-pass_in-bytes-wipe_on_drop/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-slice-pass_in-bytes-wipe_on_drop","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/10_no_heap-slice-pass_in-bytes-wipe_on_drop/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_slice_pass_in_bytes_wipe_on_drop-b937e9ee580d01d5.rmeta"],"executable":null,"fresh":false}
      Checking no_heap-array-const_limit-bytes-wipe_on_clone-unsafe v1.0.0 (/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/05_no_heap-array-const_limit-bytes-wipe_on_clone-unsafe)
  {"reason":"compiler-artifact","package_id":"no_heap-eq_dispatch_universal 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/18_no_heap-eq_dispatch_universal)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/18_no_heap-eq_dispatch_universal/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-eq_dispatch_universal","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/18_no_heap-eq_dispatch_universal/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_eq_dispatch_universal-5b0136a6382ad2b0.rmeta"],"executable":null,"fresh":false}
  {"reason":"compiler-artifact","package_id":"no_heap-array-const_limit-bytes-wipe_on_clone-unsafe 1.0.0 (path+file:///home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/05_no_heap-array-const_limit-bytes-wipe_on_clone-unsafe)","manifest_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/05_no_heap-array-const_limit-bytes-wipe_on_clone-unsafe/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_heap-array-const_limit-bytes-wipe_on_clone-unsafe","src_path":"/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/05_no_heap-array-const_limit-bytes-wipe_on_clone-unsafe/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/no_std_rna_slice_patterns/no_std_rna_slice_patterns/target/debug/deps/libno_heap_array_const_limit_bytes_wipe_on_clone_unsafe-e8b0d7fa3beaf773.rmeta"],"executable":null,"fresh":false}
  {"reason":"build-finished","success":true}
      Finished dev [unoptimized + debuginfo] target(s) in 1.28s
Clippy results: 0 ICE, 0 errors, 0 warnings, 0 notes, 0 help
Error: Resource not accessible by integration

which ends with:

  {"reason":"build-finished","success":true}
      Finished dev [unoptimized + debuginfo] target(s) in 1.28s
Clippy results: 0 ICE, 0 errors, 0 warnings, 0 notes, 0 help
Error: Resource not accessible by integration

(Unsure if relevant:) The above looks a little different to the screenshot at #2, and it doesn't contain the second line of error output from #2: Node run failed with exit code 1.

Re-run for the same commit, now with ACTIONS_STEP_DEBUG:
https://github.com/peter-kehl/no_std_rna_slice_patterns/runs/8119525450?check_suite_focus=true

##[debug]Evaluating condition for step: 'Run actions-rs/clippy-check@v1'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Run actions-rs/clippy-check@v1
##[debug]Loading inputs
##[debug]Evaluating: secrets.GITHUB_TOKEN
##[debug]Evaluating Index:
##[debug]..Evaluating secrets:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'GITHUB_TOKEN'
##[debug]=> '***'
##[debug]Result: '***'
##[debug]Loading env
Run actions-rs/clippy-check@v1
::group::Executing cargo clippy (JSON output)
Executing cargo clippy (JSON output)
Clippy results: 0 ICE, 0 errors, 0 warnings, 0 notes, 0 help
Error: Resource not accessible by integration
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Run actions-rs/clippy-check@v1

Re-run with both ACTIONS_STEP_DEBUG and ACTIONS_RUNNER_DEBUG:
https://github.com/peter-kehl/no_std_rna_slice_patterns/runs/8119747255?check_suite_focus=true -> the same error as the above.

I've tried several times to attach a debug output here, but GitHub refused to upload both the whole ZIP, and even parts of it (TXT files). If you need any files, suggest how to get them to you.

This has happened at least a few times (or all the time) since I added the above test.yml on Tue Aug 30, 2022.

Thank you in advance.

`toolchain` argument doesn't work?

Seems like toolchain argument doesn't really work with clippy-check:

  /usr/share/rust/.cargo/bin/cargo clippy --message-format=json +nightly --all-features
  error: Found argument '+nightly' which wasn't expected, or isn't valid in this context
  
  USAGE:
      cargo check --message-format <FMT>...

I think, +nightly should go in front of the check.

Option to only create annotations instead of using a separate check run

Do the checklist before filing an issue:

Motivation

It would be nice if actions-rs/clippy-check worked like actions-rs/cargo, and just created annotations. This would prevent it from creating an unnecessary check run to display the results in a table. The cargo action doesn't display the full details like clippy-check does.

Workflow example

- uses: actions/rs@clippy-check@v1
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    only-annotations: true

Additional context

This would also be useful to prevent #45 from happening until that gets fixed one day.

##[error]Validation Failed: {"resource":"CheckRun","code":"invalid","field":"annotations"}

Do the checklist before filing an issue:

Description

I'm getting this error in one of my clippy runs. The same run didn't get it previously a few months ago. There's a different clippy invocation a step before and it doesn't get any errors and adds annotations correctly.

Workflow code

https://github.com/YaLTeR/vapoursynth-rs/blob/82664ad5e4578e77f19097341187aab41f7153ac/.github/workflows/vapoursynth.yml#L31-L36

Action output

Link to the log: https://github.com/YaLTeR/vapoursynth-rs/runs/560282924?check_suite_focus=true#step:6:135

2020-04-04T11:38:45.5255041Z ##[debug]Starting: Run clippy on the sample-plugin
2020-04-04T11:38:45.5316787Z ##[debug]Loading inputs
2020-04-04T11:38:45.5367929Z ##[debug]Evaluating: secrets.GITHUB_TOKEN
2020-04-04T11:38:45.5368164Z ##[debug]Evaluating Index:
2020-04-04T11:38:45.5368269Z ##[debug]..Evaluating secrets:
2020-04-04T11:38:45.5368444Z ##[debug]..=> Object
2020-04-04T11:38:45.5368826Z ##[debug]..Evaluating String:
2020-04-04T11:38:45.5368985Z ##[debug]..=> 'GITHUB_TOKEN'
2020-04-04T11:38:45.5370608Z ##[debug]=> '***'
2020-04-04T11:38:45.5371113Z ##[debug]Result: '***'
2020-04-04T11:38:45.5374195Z ##[debug]Loading env
2020-04-04T11:38:45.5380836Z ##[group]Run actions-rs/clippy-check@v1
2020-04-04T11:38:45.5380968Z with:
2020-04-04T11:38:45.5381193Z   token: ***
2020-04-04T11:38:45.5381316Z   args: --all-targets --package sample-plugin
2020-04-04T11:38:45.5381384Z   name: sample-plugin
2020-04-04T11:38:45.5381496Z   use-cross: false
2020-04-04T11:38:45.5381620Z env:
2020-04-04T11:38:45.5381735Z   actions_step_debug: true
2020-04-04T11:38:45.5471973Z ##[endgroup]
2020-04-04T11:38:45.6823846Z ::group::Executing cargo clippy (JSON output)
2020-04-04T11:38:45.6824063Z ##[group]Executing cargo clippy (JSON output)
2020-04-04T11:38:45.6826732Z [command]/usr/share/rust/.cargo/bin/cargo clippy --message-format=json --all-targets --package sample-plugin
2020-04-04T11:38:45.7255092Z {"reason":"compiler-artifact","package_id":"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.68/build.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/libc-f2014b38189d3091/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7266379Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7271020Z {"reason":"compiler-artifact","package_id":"proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.9/build.rs","edition":"2018","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/proc-macro2-f28152069b6cfabf/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7272301Z {"reason":"compiler-artifact","package_id":"cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"cfg-if","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.10/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libcfg_if-5da2e6851197c22f.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7273760Z {"reason":"compiler-artifact","package_id":"unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode-xid","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-xid-0.2.0/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libunicode_xid-b92f0306f00a37a0.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libunicode_xid-b92f0306f00a37a0.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7274593Z {"reason":"compiler-artifact","package_id":"cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"cc","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.50/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libcc-c4462494581162fb.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libcc-c4462494581162fb.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7275437Z {"reason":"compiler-artifact","package_id":"syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.17/build.rs","edition":"2018","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","parsing","printing","proc-macro","quote","visit"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/syn-f2399b2f37178547/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7275909Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7276241Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7282502Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7283544Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7284060Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7284292Z    Compiling getrandom v0.1.14
2020-04-04T11:38:45.7290064Z {"reason":"compiler-artifact","package_id":"failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/failure_derive-0.1.7/build.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/failure_derive-faa352c948e2d25d/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7295356Z {"reason":"compiler-artifact","package_id":"rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustc-demangle","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-demangle-0.1.16/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/librustc_demangle-19e9e0bb9e605814.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7296758Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7299460Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7300308Z {"reason":"compiler-artifact","package_id":"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.2.1/build.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/bitflags-41a941e996b046d4/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:45.7300760Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:45.7301095Z    Compiling vapoursynth-sys v0.3.0 (/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys)
2020-04-04T11:38:45.8343540Z {"reason":"compiler-message","package_id":"vapoursynth-sys 0.3.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys/build.rs","edition":"2015","doctest":false},"message":{"rendered":"warning: this `else { if .. }` block can be collapsed\n  --> vapoursynth-sys/build.rs:22:12\n   |\n22 |       } else {\n   |  ____________^\n23 | |         if let Some(default_library_dir) = default_library_dir {\n24 | |             for dir in default_library_dir {\n25 | |                 println!(\"cargo:rustc-link-search=native={}\", dir);\n26 | |             }\n27 | |         }\n28 | |     }\n   | |_____^\n   |\n   = note: `#[warn(clippy::collapsible_if)]` on by default\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if\nhelp: try\n   |\n22 |     } else if let Some(default_library_dir) = default_library_dir {\n23 |     for dir in default_library_dir {\n24 |         println!(\"cargo:rustc-link-search=native={}\", dir);\n25 |     }\n26 | }\n   |\n\n","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(clippy::collapsible_if)]` on by default","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"try","rendered":null,"spans":[{"byte_end":881,"byte_start":672,"column_end":6,"column_start":12,"expansion":null,"file_name":"vapoursynth-sys/build.rs","is_primary":true,"label":null,"line_end":28,"line_start":22,"suggested_replacement":"if let Some(default_library_dir) = default_library_dir {\n    for dir in default_library_dir {\n        println!(\"cargo:rustc-link-search=native={}\", dir);\n    }\n}","suggestion_applicability":"MachineApplicable","text":[{"highlight_end":13,"highlight_start":12,"text":"    } else {"},{"highlight_end":65,"highlight_start":1,"text":"        if let Some(default_library_dir) = default_library_dir {"},{"highlight_end":45,"highlight_start":1,"text":"            for dir in default_library_dir {"},{"highlight_end":68,"highlight_start":1,"text":"                println!(\"cargo:rustc-link-search=native={}\", dir);"},{"highlight_end":14,"highlight_start":1,"text":"            }"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":6,"highlight_start":1,"text":"    }"}]}]}],"code":{"code":"clippy::collapsible_if","explanation":null},"level":"warning","message":"this `else { if .. }` block can be collapsed","spans":[{"byte_end":881,"byte_start":672,"column_end":6,"column_start":12,"expansion":null,"file_name":"vapoursynth-sys/build.rs","is_primary":true,"label":null,"line_end":28,"line_start":22,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":13,"highlight_start":12,"text":"    } else {"},{"highlight_end":65,"highlight_start":1,"text":"        if let Some(default_library_dir) = default_library_dir {"},{"highlight_end":45,"highlight_start":1,"text":"            for dir in default_library_dir {"},{"highlight_end":68,"highlight_start":1,"text":"                println!(\"cargo:rustc-link-search=native={}\", dir);"},{"highlight_end":14,"highlight_start":1,"text":"            }"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":6,"highlight_start":1,"text":"    }"}]}]}}
2020-04-04T11:38:46.0287541Z {"reason":"compiler-artifact","package_id":"getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.14/build.rs","edition":"2018","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/getrandom-384b0be3da23b777/build-script-build"],"executable":null,"fresh":false}
2020-04-04T11:38:46.0289750Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.0290576Z     Checking ppv-lite86 v0.2.6
2020-04-04T11:38:46.3984992Z {"reason":"compiler-artifact","package_id":"vapoursynth-sys 0.3.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys/build.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/vapoursynth-sys-60869aec456a1e4d/build-script-build"],"executable":null,"fresh":false}
2020-04-04T11:38:46.3985605Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.3986334Z {"reason":"compiler-artifact","package_id":"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"lazy_static","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/liblazy_static-fb13d2ff58e5f597.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.3986939Z {"reason":"build-script-executed","package_id":"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":["freebsd11","libc_priv_mod_use","libc_union","libc_const_size_of","libc_align","libc_core_cvoid","libc_packedN"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/libc-497d53712d3285ed/out"}
2020-04-04T11:38:46.3987678Z {"reason":"build-script-executed","package_id":"proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":["use_proc_macro","wrap_proc_macro"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/proc-macro2-a6018a4c04fe4d29/out"}
2020-04-04T11:38:46.3988526Z {"reason":"compiler-artifact","package_id":"backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-sys-0.1.35/build.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["backtrace-sys"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/backtrace-sys-6bae507ed463952b/build-script-build"],"executable":null,"fresh":true}
2020-04-04T11:38:46.3989107Z {"reason":"build-script-executed","package_id":"syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":["syn_disable_nightly_tests"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/syn-6dfbcd0470eefb0b/out"}
2020-04-04T11:38:46.3989604Z {"reason":"build-script-executed","package_id":"failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":["has_dyn_trait"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/failure_derive-42335a16e6984455/out"}
2020-04-04T11:38:46.3990101Z {"reason":"build-script-executed","package_id":"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":["bitflags_const_fn"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/bitflags-d80e338275f21d16/out"}
2020-04-04T11:38:46.3990472Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.3990777Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.3991075Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.3991356Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.3991650Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.3991946Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.3992238Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.3999664Z {"reason":"build-script-executed","package_id":"getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/getrandom-570a3bc8b3850b47/out"}
2020-04-04T11:38:46.4000812Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.4016420Z {"reason":"build-script-executed","package_id":"vapoursynth-sys 0.3.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys)","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/vapoursynth-sys-6be824870efdc26d/out"}
2020-04-04T11:38:46.4018047Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.4019149Z {"reason":"compiler-artifact","package_id":"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.68/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/liblibc-d1752a85b11679b8.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.4020432Z {"reason":"compiler-artifact","package_id":"proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc-macro2","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.9/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libproc_macro2-3e73c5d96766f7c4.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libproc_macro2-3e73c5d96766f7c4.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.4021374Z {"reason":"build-script-executed","package_id":"backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)","linked_libs":["static=backtrace"],"linked_paths":["native=/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/backtrace-sys-ddb34e463ec9a366/out"],"cfgs":["rbt"],"env":[],"out_dir":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/build/backtrace-sys-ddb34e463ec9a366/out"}
2020-04-04T11:38:46.4022526Z {"reason":"compiler-artifact","package_id":"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"bitflags","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.2.1/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libbitflags-26f8025146b11ec5.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.4023482Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.4024012Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.4024555Z ##[debug]Unexpected reason field, ignoring it: build-script-executed
2020-04-04T11:38:46.4025209Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.7443187Z {"reason":"compiler-artifact","package_id":"vapoursynth-sys 0.3.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys)","target":{"kind":["lib"],"crate_types":["lib"],"name":"vapoursynth-sys","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth-sys/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libvapoursynth_sys-0e90e2e712e2bb53.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:46.7444404Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.9506154Z {"reason":"compiler-artifact","package_id":"getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"getrandom","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.14/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libgetrandom-9a5b794d30d29858.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:46.9507777Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.9508954Z {"reason":"compiler-artifact","package_id":"quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/quote-1.0.3/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libquote-3c0258c69d162d19.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libquote-3c0258c69d162d19.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.9510919Z {"reason":"compiler-artifact","package_id":"backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"backtrace-sys","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-sys-0.1.35/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["backtrace-sys"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libbacktrace_sys-1ac65d5f4cf37687.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:46.9511633Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.9512209Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:46.9512554Z     Checking rand_core v0.5.1
2020-04-04T11:38:47.1899196Z {"reason":"compiler-artifact","package_id":"rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_core","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.5.1/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","getrandom","std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/librand_core-66171c0d189b5c87.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:47.1900947Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1903642Z {"reason":"compiler-artifact","package_id":"syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.17/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","parsing","printing","proc-macro","quote","visit"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsyn-c84caa92334e6209.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsyn-c84caa92334e6209.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:47.1904721Z {"reason":"compiler-artifact","package_id":"backtrace 0.3.46 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"backtrace","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["backtrace-sys","dbghelp","default","dladdr","libbacktrace","libunwind","std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libbacktrace-4a69f42f763a6428.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:47.1905944Z {"reason":"compiler-artifact","package_id":"synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"synstructure","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/synstructure-0.12.3/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsynstructure-5d080052239113bf.rlib","/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsynstructure-5d080052239113bf.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:47.1907007Z {"reason":"compiler-artifact","package_id":"failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"failure_derive","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/failure_derive-0.1.7/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libfailure_derive-862b522233fbebb7.so"],"executable":null,"fresh":true}
2020-04-04T11:38:47.1907928Z {"reason":"compiler-artifact","package_id":"failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"failure","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/failure-0.1.7/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["backtrace","default","derive","failure_derive","std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libfailure-99632686783b6dfe.rmeta"],"executable":null,"fresh":true}
2020-04-04T11:38:47.1908433Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1908746Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1909031Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1909324Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1909614Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:47.1910261Z     Checking vapoursynth v0.3.0 (/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth)
2020-04-04T11:38:48.4668105Z {"reason":"compiler-artifact","package_id":"vapoursynth 0.3.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth)","target":{"kind":["lib"],"crate_types":["lib"],"name":"vapoursynth","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/vapoursynth/src/lib.rs","edition":"2015","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libvapoursynth-037ffdbe4a585c93.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:48.4672280Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:49.2914968Z {"reason":"compiler-artifact","package_id":"ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"ppv-lite86","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.6/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["simd","std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libppv_lite86-04086f98d18ad70d.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:49.2916217Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:49.2916874Z     Checking rand_chacha v0.2.2
2020-04-04T11:38:49.6969984Z {"reason":"compiler-artifact","package_id":"rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_chacha","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.2.2/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/librand_chacha-9df4f4e65eeafbf4.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:38:49.6971342Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:38:49.6971687Z     Checking rand v0.7.3
2020-04-04T11:39:03.2497133Z {"reason":"compiler-artifact","package_id":"rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand","src_path":"/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.7.3/src/lib.rs","edition":"2018","doctest":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","getrandom","getrandom_package","libc","std"],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/librand-72b4e01011d71f18.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:39:03.2498951Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:39:03.2499443Z     Checking sample-plugin v0.1.0 (/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)
2020-04-04T11:39:03.6311042Z {"reason":"compiler-message","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"message":{"rendered":"warning: this function has too many arguments (8/7)\n  --> sample-plugin/src/lib.rs:247:63\n   |\n33 | |\n   | |____________________^\n...\n247|       ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {\n   |  _______________________________________________________________^\n   |\n   = note: `#[warn(clippy::too_many_arguments)]` on by default\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments\n\n","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(clippy::too_many_arguments)]` on by default","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments","rendered":null,"spans":[]}],"code":{"code":"clippy::too_many_arguments","explanation":null},"level":"warning","message":"this function has too many arguments (8/7)","spans":[{"byte_end":8255982,"byte_start":7288,"column_end":21,"column_start":63,"expansion":{"def_site_span":{"byte_end":1798,"byte_start":0,"column_end":67,"column_start":1,"expansion":null,"file_name":"<::vapoursynth::plugins::make_filter_function macros>","is_primary":false,"label":null,"line_end":35,"line_start":1,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":74,"highlight_start":1,"text":"($ struct_name : ident, $ function_name : tt $ (# [$ attr : meta]) * fn $"},{"highlight_end":44,"highlight_start":1,"text":" create_fn_name : ident < $ lifetime : tt >"},{"highlight_end":76,"highlight_start":1,"text":" ($ api_arg_name : ident : $ api_arg_type : ty, $ core_arg_name : ident : $"},{"highlight_end":78,"highlight_start":1,"text":"  core_arg_type : ty, $ ($ arg_name : ident : $ arg_type : ty), * $ (,) *) ->"},{"highlight_end":46,"highlight_start":1,"text":" $ return_type : ty { $ ($ body : tt) * }) =>"},{"highlight_end":60,"highlight_start":1,"text":"(struct $ struct_name { args : String, } impl $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":33,"highlight_start":1,"text":"     fn new < 'core > () -> Self"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":45,"highlight_start":1,"text":"         let mut args = String :: new () ; $"},{"highlight_end":72,"highlight_start":1,"text":"         (args += stringify ! ($ arg_name) ; args += \":\" ; args += << $"},{"highlight_end":79,"highlight_start":1,"text":"          arg_type as $ crate :: plugins :: FilterParameter > :: Argument > ::"},{"highlight_end":66,"highlight_start":1,"text":"          type_name () ; if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \"[]\" ; } if < $ arg_type"},{"highlight_end":71,"highlight_start":1,"text":"          as $ crate :: plugins :: FilterParameter > :: is_optional ()"},{"highlight_end":72,"highlight_start":1,"text":"          { args += \":opt\" ; } if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \":empty\" ; } args += \";\""},{"highlight_end":29,"highlight_start":1,"text":"          ;) * Self { args }"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":63,"highlight_start":1,"text":" } impl $ crate :: plugins :: FilterFunction for $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":76,"highlight_start":1,"text":"     # [inline] fn name (& self) -> & str { $ function_name } # [inline] fn"},{"highlight_end":77,"highlight_start":1,"text":"     args (& self) -> & str { & self . args } # [inline] fn create < 'core >"},{"highlight_end":79,"highlight_start":1,"text":"     (& self, api : API, core : CoreRef < 'core >, args : & Map < 'core >,) ->"},{"highlight_end":76,"highlight_start":1,"text":"     Result < Option < Box < $ crate :: plugins :: Filter < 'core > + 'core"},{"highlight_end":17,"highlight_start":1,"text":"     >>, Error >"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":26,"highlight_start":1,"text":"         $ create_fn_name"},{"highlight_end":23,"highlight_start":1,"text":"         (api, core, $"},{"highlight_end":70,"highlight_start":1,"text":"          (< $ arg_type as $ crate :: plugins :: FilterParameter > ::"},{"highlight_end":63,"highlight_start":1,"text":"           get_from_map (args, stringify ! ($ arg_name),)), *)"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":55,"highlight_start":1,"text":" } $ (# [$ attr]) * fn $ create_fn_name < $ lifetime >"},{"highlight_end":72,"highlight_start":1,"text":" ($ api_arg_name : $ api_arg_type, $ core_arg_name : $ core_arg_type, $"},{"highlight_end":67,"highlight_start":1,"text":"  ($ arg_name : $ arg_type), *) -> $ return_type { $ ($ body) * })"}]},"macro_decl_name":"make_filter_function!","span":{"byte_end":8521,"byte_start":6953,"column_end":2,"column_start":1,"expansion":null,"file_name":"sample-plugin/src/lib.rs","is_primary":false,"label":null,"line_end":291,"line_start":235,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":1,"text":"make_filter_function! {"},{"highlight_end":39,"highlight_start":1,"text":"    RandomNoiseFunction, \"RandomNoise\""},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":35,"highlight_start":1,"text":"    fn create_random_noise<'core>("},{"highlight_end":19,"highlight_start":1,"text":"        _api: API,"},{"highlight_end":30,"highlight_start":1,"text":"        core: CoreRef<'core>,"},{"highlight_end":21,"highlight_start":1,"text":"        format: i64,"},{"highlight_end":20,"highlight_start":1,"text":"        width: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        height: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        length: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        fpsnum: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        fpsden: i64,"},{"highlight_end":65,"highlight_start":1,"text":"    ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {"},{"highlight_end":48,"highlight_start":1,"text":"        let format_id = (format as i32).into();"},{"highlight_end":48,"highlight_start":1,"text":"        let format = core.get_format(format_id)"},{"highlight_end":60,"highlight_start":1,"text":"            .ok_or_else(|| format_err!(\"No such format\"))?;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":55,"highlight_start":1,"text":"        if format.sample_type() == SampleType::Float {"},{"highlight_end":63,"highlight_start":1,"text":"            bail!(\"Floating point formats are not supported\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":63,"highlight_start":1,"text":"        if width <= 0 || width > i64::from(i32::max_value()) {"},{"highlight_end":36,"highlight_start":1,"text":"            bail!(\"Invalid width\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let width = width as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":65,"highlight_start":1,"text":"        if height <= 0 || height > i64::from(i32::max_value()) {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid height\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":38,"highlight_start":1,"text":"        let height = height as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":65,"highlight_start":1,"text":"        if length <= 0 || length > i64::from(i32::max_value()) {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid length\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":38,"highlight_start":1,"text":"        let length = length as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":25,"highlight_start":1,"text":"        if fpsnum <= 0 {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid fpsnum\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let fpsnum = fpsnum as u64;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":25,"highlight_start":1,"text":"        if fpsden <= 0 {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid fpsden\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let fpsden = fpsden as u64;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":39,"highlight_start":1,"text":"        Ok(Some(Box::new(RandomNoise {"},{"highlight_end":23,"highlight_start":1,"text":"            format_id,"},{"highlight_end":54,"highlight_start":1,"text":"            resolution: Resolution { width, height },"},{"highlight_end":35,"highlight_start":1,"text":"            framerate: Framerate {"},{"highlight_end":35,"highlight_start":1,"text":"                numerator: fpsnum,"},{"highlight_end":37,"highlight_start":1,"text":"                denominator: fpsden,"},{"highlight_end":15,"highlight_start":1,"text":"            },"},{"highlight_end":20,"highlight_start":1,"text":"            length,"},{"highlight_end":13,"highlight_start":1,"text":"        })))"},{"highlight_end":6,"highlight_start":1,"text":"    }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"sample-plugin/src/lib.rs","is_primary":true,"label":null,"line_end":33,"line_start":247,"suggested_replacement":null,"suggestion_applicability":null,"text":[]}]}}
2020-04-04T11:39:03.6517463Z {"reason":"compiler-message","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"message":{"rendered":"warning: this function has too many arguments (8/7)\n  --> sample-plugin/src/lib.rs:247:63\n   |\n33 | |\n   | |____________________^\n...\n247|       ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {\n   |  _______________________________________________________________^\n   |\n   = note: `#[warn(clippy::too_many_arguments)]` on by default\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments\n\n","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(clippy::too_many_arguments)]` on by default","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments","rendered":null,"spans":[]}],"code":{"code":"clippy::too_many_arguments","explanation":null},"level":"warning","message":"this function has too many arguments (8/7)","spans":[{"byte_end":8255982,"byte_start":7288,"column_end":21,"column_start":63,"expansion":{"def_site_span":{"byte_end":1798,"byte_start":0,"column_end":67,"column_start":1,"expansion":null,"file_name":"<::vapoursynth::plugins::make_filter_function macros>","is_primary":false,"label":null,"line_end":35,"line_start":1,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":74,"highlight_start":1,"text":"($ struct_name : ident, $ function_name : tt $ (# [$ attr : meta]) * fn $"},{"highlight_end":44,"highlight_start":1,"text":" create_fn_name : ident < $ lifetime : tt >"},{"highlight_end":76,"highlight_start":1,"text":" ($ api_arg_name : ident : $ api_arg_type : ty, $ core_arg_name : ident : $"},{"highlight_end":78,"highlight_start":1,"text":"  core_arg_type : ty, $ ($ arg_name : ident : $ arg_type : ty), * $ (,) *) ->"},{"highlight_end":46,"highlight_start":1,"text":" $ return_type : ty { $ ($ body : tt) * }) =>"},{"highlight_end":60,"highlight_start":1,"text":"(struct $ struct_name { args : String, } impl $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":33,"highlight_start":1,"text":"     fn new < 'core > () -> Self"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":45,"highlight_start":1,"text":"         let mut args = String :: new () ; $"},{"highlight_end":72,"highlight_start":1,"text":"         (args += stringify ! ($ arg_name) ; args += \":\" ; args += << $"},{"highlight_end":79,"highlight_start":1,"text":"          arg_type as $ crate :: plugins :: FilterParameter > :: Argument > ::"},{"highlight_end":66,"highlight_start":1,"text":"          type_name () ; if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \"[]\" ; } if < $ arg_type"},{"highlight_end":71,"highlight_start":1,"text":"          as $ crate :: plugins :: FilterParameter > :: is_optional ()"},{"highlight_end":72,"highlight_start":1,"text":"          { args += \":opt\" ; } if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \":empty\" ; } args += \";\""},{"highlight_end":29,"highlight_start":1,"text":"          ;) * Self { args }"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":63,"highlight_start":1,"text":" } impl $ crate :: plugins :: FilterFunction for $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":76,"highlight_start":1,"text":"     # [inline] fn name (& self) -> & str { $ function_name } # [inline] fn"},{"highlight_end":77,"highlight_start":1,"text":"     args (& self) -> & str { & self . args } # [inline] fn create < 'core >"},{"highlight_end":79,"highlight_start":1,"text":"     (& self, api : API, core : CoreRef < 'core >, args : & Map < 'core >,) ->"},{"highlight_end":76,"highlight_start":1,"text":"     Result < Option < Box < $ crate :: plugins :: Filter < 'core > + 'core"},{"highlight_end":17,"highlight_start":1,"text":"     >>, Error >"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":26,"highlight_start":1,"text":"         $ create_fn_name"},{"highlight_end":23,"highlight_start":1,"text":"         (api, core, $"},{"highlight_end":70,"highlight_start":1,"text":"          (< $ arg_type as $ crate :: plugins :: FilterParameter > ::"},{"highlight_end":63,"highlight_start":1,"text":"           get_from_map (args, stringify ! ($ arg_name),)), *)"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":55,"highlight_start":1,"text":" } $ (# [$ attr]) * fn $ create_fn_name < $ lifetime >"},{"highlight_end":72,"highlight_start":1,"text":" ($ api_arg_name : $ api_arg_type, $ core_arg_name : $ core_arg_type, $"},{"highlight_end":67,"highlight_start":1,"text":"  ($ arg_name : $ arg_type), *) -> $ return_type { $ ($ body) * })"}]},"macro_decl_name":"make_filter_function!","span":{"byte_end":8521,"byte_start":6953,"column_end":2,"column_start":1,"expansion":null,"file_name":"sample-plugin/src/lib.rs","is_primary":false,"label":null,"line_end":291,"line_start":235,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":1,"text":"make_filter_function! {"},{"highlight_end":39,"highlight_start":1,"text":"    RandomNoiseFunction, \"RandomNoise\""},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":35,"highlight_start":1,"text":"    fn create_random_noise<'core>("},{"highlight_end":19,"highlight_start":1,"text":"        _api: API,"},{"highlight_end":30,"highlight_start":1,"text":"        core: CoreRef<'core>,"},{"highlight_end":21,"highlight_start":1,"text":"        format: i64,"},{"highlight_end":20,"highlight_start":1,"text":"        width: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        height: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        length: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        fpsnum: i64,"},{"highlight_end":21,"highlight_start":1,"text":"        fpsden: i64,"},{"highlight_end":65,"highlight_start":1,"text":"    ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {"},{"highlight_end":48,"highlight_start":1,"text":"        let format_id = (format as i32).into();"},{"highlight_end":48,"highlight_start":1,"text":"        let format = core.get_format(format_id)"},{"highlight_end":60,"highlight_start":1,"text":"            .ok_or_else(|| format_err!(\"No such format\"))?;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":55,"highlight_start":1,"text":"        if format.sample_type() == SampleType::Float {"},{"highlight_end":63,"highlight_start":1,"text":"            bail!(\"Floating point formats are not supported\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":63,"highlight_start":1,"text":"        if width <= 0 || width > i64::from(i32::max_value()) {"},{"highlight_end":36,"highlight_start":1,"text":"            bail!(\"Invalid width\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let width = width as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":65,"highlight_start":1,"text":"        if height <= 0 || height > i64::from(i32::max_value()) {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid height\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":38,"highlight_start":1,"text":"        let height = height as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":65,"highlight_start":1,"text":"        if length <= 0 || length > i64::from(i32::max_value()) {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid length\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":38,"highlight_start":1,"text":"        let length = length as usize;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":25,"highlight_start":1,"text":"        if fpsnum <= 0 {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid fpsnum\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let fpsnum = fpsnum as u64;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":25,"highlight_start":1,"text":"        if fpsden <= 0 {"},{"highlight_end":37,"highlight_start":1,"text":"            bail!(\"Invalid fpsden\");"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":36,"highlight_start":1,"text":"        let fpsden = fpsden as u64;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":39,"highlight_start":1,"text":"        Ok(Some(Box::new(RandomNoise {"},{"highlight_end":23,"highlight_start":1,"text":"            format_id,"},{"highlight_end":54,"highlight_start":1,"text":"            resolution: Resolution { width, height },"},{"highlight_end":35,"highlight_start":1,"text":"            framerate: Framerate {"},{"highlight_end":35,"highlight_start":1,"text":"                numerator: fpsnum,"},{"highlight_end":37,"highlight_start":1,"text":"                denominator: fpsden,"},{"highlight_end":15,"highlight_start":1,"text":"            },"},{"highlight_end":20,"highlight_start":1,"text":"            length,"},{"highlight_end":13,"highlight_start":1,"text":"        })))"},{"highlight_end":6,"highlight_start":1,"text":"    }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"sample-plugin/src/lib.rs","is_primary":true,"label":null,"line_end":33,"line_start":247,"suggested_replacement":null,"suggestion_applicability":null,"text":[]}]}}
2020-04-04T11:39:03.6575720Z {"reason":"compiler-message","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"message":{"rendered":"warning: this function has too many arguments (12/7)\n  --> sample-plugin/src/lib.rs:396:63\n   |\n33 | |\n   | |____________________^\n...\n396|       ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {\n   |  _______________________________________________________________^\n   |\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments\n\n","children":[{"children":[],"code":null,"level":"help","message":"for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments","rendered":null,"spans":[]}],"code":{"code":"clippy::too_many_arguments","explanation":null},"level":"warning","message":"this function has too many arguments (12/7)","spans":[{"byte_end":8255982,"byte_start":11500,"column_end":21,"column_start":63,"expansion":{"def_site_span":{"byte_end":1798,"byte_start":0,"column_end":67,"column_start":1,"expansion":null,"file_name":"<::vapoursynth::plugins::make_filter_function macros>","is_primary":false,"label":null,"line_end":35,"line_start":1,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":74,"highlight_start":1,"text":"($ struct_name : ident, $ function_name : tt $ (# [$ attr : meta]) * fn $"},{"highlight_end":44,"highlight_start":1,"text":" create_fn_name : ident < $ lifetime : tt >"},{"highlight_end":76,"highlight_start":1,"text":" ($ api_arg_name : ident : $ api_arg_type : ty, $ core_arg_name : ident : $"},{"highlight_end":78,"highlight_start":1,"text":"  core_arg_type : ty, $ ($ arg_name : ident : $ arg_type : ty), * $ (,) *) ->"},{"highlight_end":46,"highlight_start":1,"text":" $ return_type : ty { $ ($ body : tt) * }) =>"},{"highlight_end":60,"highlight_start":1,"text":"(struct $ struct_name { args : String, } impl $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":33,"highlight_start":1,"text":"     fn new < 'core > () -> Self"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":45,"highlight_start":1,"text":"         let mut args = String :: new () ; $"},{"highlight_end":72,"highlight_start":1,"text":"         (args += stringify ! ($ arg_name) ; args += \":\" ; args += << $"},{"highlight_end":79,"highlight_start":1,"text":"          arg_type as $ crate :: plugins :: FilterParameter > :: Argument > ::"},{"highlight_end":66,"highlight_start":1,"text":"          type_name () ; if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \"[]\" ; } if < $ arg_type"},{"highlight_end":71,"highlight_start":1,"text":"          as $ crate :: plugins :: FilterParameter > :: is_optional ()"},{"highlight_end":72,"highlight_start":1,"text":"          { args += \":opt\" ; } if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \":empty\" ; } args += \";\""},{"highlight_end":29,"highlight_start":1,"text":"          ;) * Self { args }"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":63,"highlight_start":1,"text":" } impl $ crate :: plugins :: FilterFunction for $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":76,"highlight_start":1,"text":"     # [inline] fn name (& self) -> & str { $ function_name } # [inline] fn"},{"highlight_end":77,"highlight_start":1,"text":"     args (& self) -> & str { & self . args } # [inline] fn create < 'core >"},{"highlight_end":79,"highlight_start":1,"text":"     (& self, api : API, core : CoreRef < 'core >, args : & Map < 'core >,) ->"},{"highlight_end":76,"highlight_start":1,"text":"     Result < Option < Box < $ crate :: plugins :: Filter < 'core > + 'core"},{"highlight_end":17,"highlight_start":1,"text":"     >>, Error >"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":26,"highlight_start":1,"text":"         $ create_fn_name"},{"highlight_end":23,"highlight_start":1,"text":"         (api, core, $"},{"highlight_end":70,"highlight_start":1,"text":"          (< $ arg_type as $ crate :: plugins :: FilterParameter > ::"},{"highlight_end":63,"highlight_start":1,"text":"           get_from_map (args, stringify ! ($ arg_name),)), *)"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":55,"highlight_start":1,"text":" } $ (# [$ attr]) * fn $ create_fn_name < $ lifetime >"},{"highlight_end":72,"highlight_start":1,"text":" ($ api_arg_name : $ api_arg_type, $ core_arg_name : $ core_arg_type, $"},{"highlight_end":67,"highlight_start":1,"text":"  ($ arg_name : $ arg_type), *) -> $ return_type { $ ($ body) * })"}]},"macro_decl_name":"make_filter_function!","span":{"byte_end":12912,"byte_start":10913,"column_end":2,"column_start":1,"expansion":null,"file_name":"sample-plugin/src/lib.rs","is_primary":false,"label":null,"line_end":429,"line_start":380,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":1,"text":"make_filter_function! {"},{"highlight_end":47,"highlight_start":1,"text":"    ArgumentTestFilterFunction, \"ArgumentTest\""},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":36,"highlight_start":1,"text":"    fn create_argument_test<'core>("},{"highlight_end":18,"highlight_start":1,"text":"        api: API,"},{"highlight_end":31,"highlight_start":1,"text":"        _core: CoreRef<'core>,"},{"highlight_end":18,"highlight_start":1,"text":"        int: i64,"},{"highlight_end":20,"highlight_start":1,"text":"        float: f64,"},{"highlight_end":21,"highlight_start":1,"text":"        data: &[u8],"},{"highlight_end":27,"highlight_start":1,"text":"        node: Node<'core>,"},{"highlight_end":32,"highlight_start":1,"text":"        frame: FrameRef<'core>,"},{"highlight_end":35,"highlight_start":1,"text":"        function: Function<'core>,"},{"highlight_end":35,"highlight_start":1,"text":"        optional_int: Option<i64>,"},{"highlight_end":43,"highlight_start":1,"text":"        another_optional_int: Option<i64>,"},{"highlight_end":60,"highlight_start":1,"text":"        frame_array: ValueIter<'_, 'core, FrameRef<'core>>,"},{"highlight_end":77,"highlight_start":1,"text":"        optional_frame_array: Option<ValueIter<'_, 'core, FrameRef<'core>>>,"},{"highlight_end":65,"highlight_start":1,"text":"    ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {"},{"highlight_end":38,"highlight_start":1,"text":"        let in_ = OwnedMap::new(api);"},{"highlight_end":42,"highlight_start":1,"text":"        let mut out = OwnedMap::new(api);"},{"highlight_end":39,"highlight_start":1,"text":"        function.call(&in_, &mut out);"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":45,"highlight_start":1,"text":"        ensure!(int == 42, \"{} != 42\", int);"},{"highlight_end":36,"highlight_start":1,"text":"        #[allow(clippy::float_cmp)]"},{"highlight_end":10,"highlight_start":1,"text":"        {"},{"highlight_end":60,"highlight_start":1,"text":"            ensure!(float == 1337f64, \"{} != 1337\", float);"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":73,"highlight_start":1,"text":"        ensure!(data == &b\"asd\"[..], \"{:?} != {:?}\", data, &b\"asd\"[..]);"},{"highlight_end":17,"highlight_start":1,"text":"        ensure!("},{"highlight_end":61,"highlight_start":1,"text":"            node.info().num_frames == Property::Constant(1),"},{"highlight_end":25,"highlight_start":1,"text":"            \"{:?} != 1\","},{"highlight_end":35,"highlight_start":1,"text":"            node.info().num_frames"},{"highlight_end":11,"highlight_start":1,"text":"        );"},{"highlight_end":69,"highlight_start":1,"text":"        ensure!(frame.width(0) == 320, \"{} != 320\", frame.width(0));"},{"highlight_end":96,"highlight_start":1,"text":"        ensure!(out.get::<i64>(\"val\").map(|x| x == 10).unwrap_or(false), \"Incorrect function\");"},{"highlight_end":68,"highlight_start":1,"text":"        ensure!(optional_int.is_some(), \"optional_int is missing\");"},{"highlight_end":83,"highlight_start":1,"text":"        ensure!(optional_int.unwrap() == 123, \"{} != 123\", optional_int.unwrap());"},{"highlight_end":85,"highlight_start":1,"text":"        ensure!(another_optional_int.is_none(), \"another_optional_int was present\");"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":43,"highlight_start":1,"text":"        let mut frame_array = frame_array;"},{"highlight_end":71,"highlight_start":1,"text":"        ensure!(frame_array.len() == 2, \"{} != 2\", frame_array.len());"},{"highlight_end":49,"highlight_start":1,"text":"        let frame = frame_array.next().unwrap();"},{"highlight_end":69,"highlight_start":1,"text":"        ensure!(frame.width(0) == 256, \"{} != 256\", frame.width(0));"},{"highlight_end":49,"highlight_start":1,"text":"        let frame = frame_array.next().unwrap();"},{"highlight_end":67,"highlight_start":1,"text":"        ensure!(frame.width(0) == 64, \"{} != 64\", frame.width(0));"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":85,"highlight_start":1,"text":"        ensure!(optional_frame_array.is_none(), \"optional_frame_array was present\");"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":62,"highlight_start":1,"text":"        Ok(Some(Box::new(ArgumentTestFilter { clip: node })))"},{"highlight_end":6,"highlight_start":1,"text":"    }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"sample-plugin/src/lib.rs","is_primary":true,"label":null,"line_end":33,"line_start":396,"suggested_replacement":null,"suggestion_applicability":null,"text":[]}]}}
2020-04-04T11:39:03.6847118Z {"reason":"compiler-artifact","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":true},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsample_plugin-7316335a9aa4f5e2.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:39:03.6858447Z {"reason":"compiler-message","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"message":{"rendered":"warning: this function has too many arguments (12/7)\n  --> sample-plugin/src/lib.rs:396:63\n   |\n33 | |\n   | |____________________^\n...\n396|       ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {\n   |  _______________________________________________________________^\n   |\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments\n\n","children":[{"children":[],"code":null,"level":"help","message":"for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments","rendered":null,"spans":[]}],"code":{"code":"clippy::too_many_arguments","explanation":null},"level":"warning","message":"this function has too many arguments (12/7)","spans":[{"byte_end":8255982,"byte_start":11500,"column_end":21,"column_start":63,"expansion":{"def_site_span":{"byte_end":1798,"byte_start":0,"column_end":67,"column_start":1,"expansion":null,"file_name":"<::vapoursynth::plugins::make_filter_function macros>","is_primary":false,"label":null,"line_end":35,"line_start":1,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":74,"highlight_start":1,"text":"($ struct_name : ident, $ function_name : tt $ (# [$ attr : meta]) * fn $"},{"highlight_end":44,"highlight_start":1,"text":" create_fn_name : ident < $ lifetime : tt >"},{"highlight_end":76,"highlight_start":1,"text":" ($ api_arg_name : ident : $ api_arg_type : ty, $ core_arg_name : ident : $"},{"highlight_end":78,"highlight_start":1,"text":"  core_arg_type : ty, $ ($ arg_name : ident : $ arg_type : ty), * $ (,) *) ->"},{"highlight_end":46,"highlight_start":1,"text":" $ return_type : ty { $ ($ body : tt) * }) =>"},{"highlight_end":60,"highlight_start":1,"text":"(struct $ struct_name { args : String, } impl $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":33,"highlight_start":1,"text":"     fn new < 'core > () -> Self"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":45,"highlight_start":1,"text":"         let mut args = String :: new () ; $"},{"highlight_end":72,"highlight_start":1,"text":"         (args += stringify ! ($ arg_name) ; args += \":\" ; args += << $"},{"highlight_end":79,"highlight_start":1,"text":"          arg_type as $ crate :: plugins :: FilterParameter > :: Argument > ::"},{"highlight_end":66,"highlight_start":1,"text":"          type_name () ; if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \"[]\" ; } if < $ arg_type"},{"highlight_end":71,"highlight_start":1,"text":"          as $ crate :: plugins :: FilterParameter > :: is_optional ()"},{"highlight_end":72,"highlight_start":1,"text":"          { args += \":opt\" ; } if < $ arg_type as $ crate :: plugins ::"},{"highlight_end":78,"highlight_start":1,"text":"          FilterParameter > :: is_array () { args += \":empty\" ; } args += \";\""},{"highlight_end":29,"highlight_start":1,"text":"          ;) * Self { args }"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":63,"highlight_start":1,"text":" } impl $ crate :: plugins :: FilterFunction for $ struct_name"},{"highlight_end":3,"highlight_start":1,"text":" {"},{"highlight_end":76,"highlight_start":1,"text":"     # [inline] fn name (& self) -> & str { $ function_name } # [inline] fn"},{"highlight_end":77,"highlight_start":1,"text":"     args (& self) -> & str { & self . args } # [inline] fn create < 'core >"},{"highlight_end":79,"highlight_start":1,"text":"     (& self, api : API, core : CoreRef < 'core >, args : & Map < 'core >,) ->"},{"highlight_end":76,"highlight_start":1,"text":"     Result < Option < Box < $ crate :: plugins :: Filter < 'core > + 'core"},{"highlight_end":17,"highlight_start":1,"text":"     >>, Error >"},{"highlight_end":7,"highlight_start":1,"text":"     {"},{"highlight_end":26,"highlight_start":1,"text":"         $ create_fn_name"},{"highlight_end":23,"highlight_start":1,"text":"         (api, core, $"},{"highlight_end":70,"highlight_start":1,"text":"          (< $ arg_type as $ crate :: plugins :: FilterParameter > ::"},{"highlight_end":63,"highlight_start":1,"text":"           get_from_map (args, stringify ! ($ arg_name),)), *)"},{"highlight_end":7,"highlight_start":1,"text":"     }"},{"highlight_end":55,"highlight_start":1,"text":" } $ (# [$ attr]) * fn $ create_fn_name < $ lifetime >"},{"highlight_end":72,"highlight_start":1,"text":" ($ api_arg_name : $ api_arg_type, $ core_arg_name : $ core_arg_type, $"},{"highlight_end":67,"highlight_start":1,"text":"  ($ arg_name : $ arg_type), *) -> $ return_type { $ ($ body) * })"}]},"macro_decl_name":"make_filter_function!","span":{"byte_end":12912,"byte_start":10913,"column_end":2,"column_start":1,"expansion":null,"file_name":"sample-plugin/src/lib.rs","is_primary":false,"label":null,"line_end":429,"line_start":380,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":1,"text":"make_filter_function! {"},{"highlight_end":47,"highlight_start":1,"text":"    ArgumentTestFilterFunction, \"ArgumentTest\""},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":36,"highlight_start":1,"text":"    fn create_argument_test<'core>("},{"highlight_end":18,"highlight_start":1,"text":"        api: API,"},{"highlight_end":31,"highlight_start":1,"text":"        _core: CoreRef<'core>,"},{"highlight_end":18,"highlight_start":1,"text":"        int: i64,"},{"highlight_end":20,"highlight_start":1,"text":"        float: f64,"},{"highlight_end":21,"highlight_start":1,"text":"        data: &[u8],"},{"highlight_end":27,"highlight_start":1,"text":"        node: Node<'core>,"},{"highlight_end":32,"highlight_start":1,"text":"        frame: FrameRef<'core>,"},{"highlight_end":35,"highlight_start":1,"text":"        function: Function<'core>,"},{"highlight_end":35,"highlight_start":1,"text":"        optional_int: Option<i64>,"},{"highlight_end":43,"highlight_start":1,"text":"        another_optional_int: Option<i64>,"},{"highlight_end":60,"highlight_start":1,"text":"        frame_array: ValueIter<'_, 'core, FrameRef<'core>>,"},{"highlight_end":77,"highlight_start":1,"text":"        optional_frame_array: Option<ValueIter<'_, 'core, FrameRef<'core>>>,"},{"highlight_end":65,"highlight_start":1,"text":"    ) -> Result<Option<Box<dyn Filter<'core> + 'core>>, Error> {"},{"highlight_end":38,"highlight_start":1,"text":"        let in_ = OwnedMap::new(api);"},{"highlight_end":42,"highlight_start":1,"text":"        let mut out = OwnedMap::new(api);"},{"highlight_end":39,"highlight_start":1,"text":"        function.call(&in_, &mut out);"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":45,"highlight_start":1,"text":"        ensure!(int == 42, \"{} != 42\", int);"},{"highlight_end":36,"highlight_start":1,"text":"        #[allow(clippy::float_cmp)]"},{"highlight_end":10,"highlight_start":1,"text":"        {"},{"highlight_end":60,"highlight_start":1,"text":"            ensure!(float == 1337f64, \"{} != 1337\", float);"},{"highlight_end":10,"highlight_start":1,"text":"        }"},{"highlight_end":73,"highlight_start":1,"text":"        ensure!(data == &b\"asd\"[..], \"{:?} != {:?}\", data, &b\"asd\"[..]);"},{"highlight_end":17,"highlight_start":1,"text":"        ensure!("},{"highlight_end":61,"highlight_start":1,"text":"            node.info().num_frames == Property::Constant(1),"},{"highlight_end":25,"highlight_start":1,"text":"            \"{:?} != 1\","},{"highlight_end":35,"highlight_start":1,"text":"            node.info().num_frames"},{"highlight_end":11,"highlight_start":1,"text":"        );"},{"highlight_end":69,"highlight_start":1,"text":"        ensure!(frame.width(0) == 320, \"{} != 320\", frame.width(0));"},{"highlight_end":96,"highlight_start":1,"text":"        ensure!(out.get::<i64>(\"val\").map(|x| x == 10).unwrap_or(false), \"Incorrect function\");"},{"highlight_end":68,"highlight_start":1,"text":"        ensure!(optional_int.is_some(), \"optional_int is missing\");"},{"highlight_end":83,"highlight_start":1,"text":"        ensure!(optional_int.unwrap() == 123, \"{} != 123\", optional_int.unwrap());"},{"highlight_end":85,"highlight_start":1,"text":"        ensure!(another_optional_int.is_none(), \"another_optional_int was present\");"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":43,"highlight_start":1,"text":"        let mut frame_array = frame_array;"},{"highlight_end":71,"highlight_start":1,"text":"        ensure!(frame_array.len() == 2, \"{} != 2\", frame_array.len());"},{"highlight_end":49,"highlight_start":1,"text":"        let frame = frame_array.next().unwrap();"},{"highlight_end":69,"highlight_start":1,"text":"        ensure!(frame.width(0) == 256, \"{} != 256\", frame.width(0));"},{"highlight_end":49,"highlight_start":1,"text":"        let frame = frame_array.next().unwrap();"},{"highlight_end":67,"highlight_start":1,"text":"        ensure!(frame.width(0) == 64, \"{} != 64\", frame.width(0));"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":85,"highlight_start":1,"text":"        ensure!(optional_frame_array.is_none(), \"optional_frame_array was present\");"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":62,"highlight_start":1,"text":"        Ok(Some(Box::new(ArgumentTestFilter { clip: node })))"},{"highlight_end":6,"highlight_start":1,"text":"    }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"sample-plugin/src/lib.rs","is_primary":true,"label":null,"line_end":33,"line_start":396,"suggested_replacement":null,"suggestion_applicability":null,"text":[]}]}}
2020-04-04T11:39:03.6861391Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:39:03.7114945Z {"reason":"compiler-artifact","package_id":"sample-plugin 0.1.0 (path+file:///home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin)","target":{"kind":["cdylib"],"crate_types":["cdylib"],"name":"sample-plugin","src_path":"/home/runner/work/vapoursynth-rs/vapoursynth-rs/sample-plugin/src/lib.rs","edition":"2015","doctest":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/runner/work/vapoursynth-rs/vapoursynth-rs/target/debug/deps/libsample_plugin-d248b4fc04f49764.rmeta"],"executable":null,"fresh":false}
2020-04-04T11:39:03.7116108Z ##[debug]Unexpected reason field, ignoring it: compiler-artifact
2020-04-04T11:39:03.7116637Z     Finished dev [unoptimized + debuginfo] target(s) in 18.00s
2020-04-04T11:39:03.7144272Z ::endgroup::
2020-04-04T11:39:03.7144465Z ##[endgroup]
2020-04-04T11:39:03.7146427Z Clippy results: 0 ICE, 0 errors, 5 warnings, 0 notes, 0 help
2020-04-04T11:39:03.9730625Z ##[debug]Prepared next annotations bucket, 5 size
2020-04-04T11:39:03.9733628Z ##[debug]This is a last iteration, marking check as "completed", conclusion: success
2020-04-04T11:39:04.4322209Z ##[error]Validation Failed: {"resource":"CheckRun","code":"invalid","field":"annotations"}
2020-04-04T11:39:04.4394857Z ##[debug]Node Action run completed with exit code 1
2020-04-04T11:39:04.4396033Z ##[debug]Finishing: Run clippy on the sample-plugin

Expected behavior

No error.

Support "working-directory" input

The action currently assumes there is exactly one Rust project and it's located in the root of the repo. It would be great to support working-directory such as the one you can use with regular run in a workflow step.

result annotation sometimes gets added to the wrong workflow

Example in https://github.com/warner/magic-wormhole.rs/actions/runs/35621960

I've got two workflows: audit (which is triggered both by pushes and on a nightly schedule), and push (which is only triggered by a push). The clippy-check step lives in a job on the push workflow, but when I push a change and both workflows run, the clippy results show up as a job in the audit workflow. Sometimes, but not always. I haven't been able to track down what makes it appear in one place or the other.

My workaround was to name the results explicitly (with the name parameter), so at least it doesn't look like the job is being duplicated.

Was the intention that the result annotation got appended to the same job that ran the clippy step? I don't know how Actions' annotation API works, maybe there's an extra workflow-number field that needs to be passed in, and if it defaults to 0, then when multiple workflows are triggered by the same commit, something shows up in the wrong place.

thanks,
-Brian

Support outputing raw 'clippy' output into a file

Do the checklist before filing an issue:

Motivation

Basically what the title said, I think it's nice to add support so that the raw output of cargo clippy is stored in a file

Workflow example

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Clippy check
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features
          output: clippy.json # this new attribute

Additional context

Currently I'm trying to integrate some rust projects with SonarQube action. It needs the clippy output to be parsed & sent into the server

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # ...
      - name: Code Analysis
        uses: sonarsource/sonarqube-scan-action@master
        with:
          args: -Dsonar.rust.clippy.reportPaths=clippy.json # this is the `cargo clippy` output

Currently I'm only able to do that by basically re-running the cargo clippy command & storing the output

  build:
    runs-on: ubuntu-latest

    steps:
      # ...
      - name: Clippy check (file)
        run: cargo clippy --message-format=json > clippy.json

It would be nice if this action could store the raw output somewhere. For the implementation I could think that a simple tee command could do the trick, like:

$ cargo clippy --message-format=json | tee clippy.json

Would basically produce the same output as usual into stdout & also into a file clippy.json

JSON output failing to be parsed

I noticed on a PR (jamiebrynes7/spatialos-sdk-rs#136) that GitHub actions was reporting that the Clippy step was failing, but no errors were being reported.

After turning on debug output, each clippy lint is followed by:

##[debug]Not a JSON, ignoring it

Example

This line originates from https://github.com/actions-rs/clippy-check/blob/master/src/check.ts#L70 where we attempt to parse each line of standard output as JSON.

Manually checking the JSON output from clippy, it seems to be valid.

Example JSON output (prettified)
  {
  	"reason": "compiler-message",
  	"package_id": "spatialos-sdk 0.0.0 (path+file:///Users/runner/runners/2.161.0/work/spatialos-sdk-rs/spatialos-sdk-rs/spatialos-sdk)",
  	"target": {
  		"kind": ["lib"],
  		"crate_types": ["lib"],
  		"name": "spatialos-sdk",
  		"src_path": "/Users/runner/runners/2.161.0/work/spatialos-sdk-rs/spatialos-sdk-rs/spatialos-sdk/src/lib.rs",
  		"edition": "2018",
  		"doctest": true
  	},
  	"message": {
  		"rendered": "error: transmute from a type (`f32`) to itself\n  --> spatialos-sdk/src/worker/schema/primitives.rs:41:33\n   |\n41 |                       Ok(unsafe { mem::transmute($schema_get(object.as_ptr(), field)) })\n   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n...\n86 | / impl_primitive_field!(\n87 | |     f32,\n88 | |     SchemaFloat,\n89 | |     Schema_GetFloat,\n...  |\n93 | |     Schema_AddFloatList,\n94 | | );\n   | |__- in this macro invocation\n   |\n   = note: `-D clippy::useless-transmute` implied by `-D warnings`\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute\n\n",
  		"children": [{
  			"children": [],
  			"code": null,
  			"level": "note",
  			"message": "`-D clippy::useless-transmute` implied by `-D warnings`",
  			"rendered": null,
  			"spans": []
  		}, {
  			"children": [],
  			"code": null,
  			"level": "help",
  			"message": "for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute",
  			"rendered": null,
  			"spans": []
  		}],
  		"code": {
  			"code": "clippy::useless_transmute",
  			"explanation": null
  		},
  		"level": "error",
  		"message": "transmute from a type (`f32`) to itself",
  		"spans": [{
  			"byte_end": 1794,
  			"byte_start": 1743,
  			"column_end": 84,
  			"column_start": 33,
  			"expansion": {
  				"def_site_span": {
  					"byte_end": 3377,
  					"byte_start": 1191,
  					"column_end": 2,
  					"column_start": 1,
  					"expansion": null,
  					"file_name": "spatialos-sdk/src/worker/schema/primitives.rs",
  					"is_primary": false,
  					"label": null,
  					"line_end": 84,
  					"line_start": 23,
  					"suggested_replacement": null,
  					"suggestion_applicability": null,
  					"text": [{
  						"highlight_end": 36,
  						"highlight_start": 1,
  						"text": "macro_rules! impl_primitive_field {"
  					}, {
  						"highlight_end": 6,
  						"highlight_start": 1,
  						"text": "    ("
  					}, {
  						"highlight_end": 23,
  						"highlight_start": 1,
  						"text": "        $rust_type:ty,"
  					}, {
  						"highlight_end": 28,
  						"highlight_start": 1,
  						"text": "        $schema_type:ident,"
  					}, {
  						"highlight_end": 27,
  						"highlight_start": 1,
  						"text": "        $schema_get:ident,"
  					}, {
  						"highlight_end": 29,
  						"highlight_start": 1,
  						"text": "        $schema_index:ident,"
  					}, {
  						"highlight_end": 29,
  						"highlight_start": 1,
  						"text": "        $schema_count:ident,"
  					}, {
  						"highlight_end": 27,
  						"highlight_start": 1,
  						"text": "        $schema_add:ident,"
  					}, {
  						"highlight_end": 32,
  						"highlight_start": 1,
  						"text": "        $schema_add_list:ident,"
  					}, {
  						"highlight_end": 11,
  						"highlight_start": 1,
  						"text": "    ) => {"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "        #[derive(Debug)]"
  					}, {
  						"highlight_end": 33,
  						"highlight_start": 1,
  						"text": "        pub struct $schema_type;"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 38,
  						"highlight_start": 1,
  						"text": "        impl Field for $schema_type {"
  					}, {
  						"highlight_end": 40,
  						"highlight_start": 1,
  						"text": "            type RustType = $rust_type;"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 82,
  						"highlight_start": 1,
  						"text": "            fn get(object: &SchemaObject, field: FieldId) -> Result<$rust_type> {"
  					}, {
  						"highlight_end": 52,
  						"highlight_start": 1,
  						"text": "                if Self::count(object, field) > 0 {"
  					}, {
  						"highlight_end": 87,
  						"highlight_start": 1,
  						"text": "                    Ok(unsafe { mem::transmute($schema_get(object.as_ptr(), field)) })"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "                } else {"
  					}, {
  						"highlight_end": 56,
  						"highlight_start": 1,
  						"text": "                    Err(Error::missing_field::<Self>())"
  					}, {
  						"highlight_end": 18,
  						"highlight_start": 1,
  						"text": "                }"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 98,
  						"highlight_start": 1,
  						"text": "            fn index(object: &SchemaObject, field: FieldId, index: usize) -> Result<$rust_type> {"
  					}, {
  						"highlight_end": 56,
  						"highlight_start": 1,
  						"text": "                let count = Self::count(object, field);"
  					}, {
  						"highlight_end": 35,
  						"highlight_start": 1,
  						"text": "                if count > index {"
  					}, {
  						"highlight_end": 32,
  						"highlight_start": 1,
  						"text": "                    Ok(unsafe {"
  					}, {
  						"highlight_end": 92,
  						"highlight_start": 1,
  						"text": "                        mem::transmute($schema_index(object.as_ptr(), field, index as u32))"
  					}, {
  						"highlight_end": 23,
  						"highlight_start": 1,
  						"text": "                    })"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "                } else {"
  					}, {
  						"highlight_end": 74,
  						"highlight_start": 1,
  						"text": "                    Err(Error::index_out_of_bounds::<Self>(index, count))"
  					}, {
  						"highlight_end": 18,
  						"highlight_start": 1,
  						"text": "                }"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 71,
  						"highlight_start": 1,
  						"text": "            fn count(object: &SchemaObject, field: FieldId) -> usize {"
  					}, {
  						"highlight_end": 74,
  						"highlight_start": 1,
  						"text": "                unsafe { $schema_count(object.as_ptr(), field) as usize }"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 84,
  						"highlight_start": 1,
  						"text": "            fn add(object: &mut SchemaObject, field: FieldId, value: &$rust_type) {"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "                unsafe {"
  					}, {
  						"highlight_end": 85,
  						"highlight_start": 1,
  						"text": "                    $schema_add(object.as_ptr_mut(), field, mem::transmute(*value));"
  					}, {
  						"highlight_end": 18,
  						"highlight_start": 1,
  						"text": "                }"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 91,
  						"highlight_start": 1,
  						"text": "            fn add_list(object: &mut SchemaObject, field: FieldId, value: &[$rust_type]) {"
  					}, {
  						"highlight_end": 42,
  						"highlight_start": 1,
  						"text": "                let ptr = value.as_ptr();"
  					}, {
  						"highlight_end": 32,
  						"highlight_start": 1,
  						"text": "                let len = value"
  					}, {
  						"highlight_end": 27,
  						"highlight_start": 1,
  						"text": "                    .len()"
  					}, {
  						"highlight_end": 32,
  						"highlight_start": 1,
  						"text": "                    .try_into()"
  					}, {
  						"highlight_end": 68,
  						"highlight_start": 1,
  						"text": "                    .expect(\"Cannot work with a super long array\");"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "                unsafe {"
  					}, {
  						"highlight_end": 88,
  						"highlight_start": 1,
  						"text": "                    $schema_add_list(object.as_ptr_mut(), field, ptr as *const _, len);"
  					}, {
  						"highlight_end": 18,
  						"highlight_start": 1,
  						"text": "                }"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 1,
  						"highlight_start": 1,
  						"text": ""
  					}, {
  						"highlight_end": 84,
  						"highlight_start": 1,
  						"text": "            fn has_update(update: &SchemaComponentUpdate, field: FieldId) -> bool {"
  					}, {
  						"highlight_end": 56,
  						"highlight_start": 1,
  						"text": "                Self::count(update.fields(), field) > 0"
  					}, {
  						"highlight_end": 14,
  						"highlight_start": 1,
  						"text": "            }"
  					}, {
  						"highlight_end": 10,
  						"highlight_start": 1,
  						"text": "        }"
  					}, {
  						"highlight_end": 7,
  						"highlight_start": 1,
  						"text": "    };"
  					}, {
  						"highlight_end": 2,
  						"highlight_start": 1,
  						"text": "}"
  					}]
  				},
  				"macro_decl_name": "impl_primitive_field!",
  				"span": {
  					"byte_end": 3546,
  					"byte_start": 3379,
  					"column_end": 3,
  					"column_start": 1,
  					"expansion": null,
  					"file_name": "spatialos-sdk/src/worker/schema/primitives.rs",
  					"is_primary": false,
  					"label": null,
  					"line_end": 94,
  					"line_start": 86,
  					"suggested_replacement": null,
  					"suggestion_applicability": null,
  					"text": [{
  						"highlight_end": 23,
  						"highlight_start": 1,
  						"text": "impl_primitive_field!("
  					}, {
  						"highlight_end": 9,
  						"highlight_start": 1,
  						"text": "    f32,"
  					}, {
  						"highlight_end": 17,
  						"highlight_start": 1,
  						"text": "    SchemaFloat,"
  					}, {
  						"highlight_end": 21,
  						"highlight_start": 1,
  						"text": "    Schema_GetFloat,"
  					}, {
  						"highlight_end": 23,
  						"highlight_start": 1,
  						"text": "    Schema_IndexFloat,"
  					}, {
  						"highlight_end": 26,
  						"highlight_start": 1,
  						"text": "    Schema_GetFloatCount,"
  					}, {
  						"highlight_end": 21,
  						"highlight_start": 1,
  						"text": "    Schema_AddFloat,"
  					}, {
  						"highlight_end": 25,
  						"highlight_start": 1,
  						"text": "    Schema_AddFloatList,"
  					}, {
  						"highlight_end": 3,
  						"highlight_start": 1,
  						"text": ");"
  					}]
  				}
  			},
  			"file_name": "spatialos-sdk/src/worker/schema/primitives.rs",
  			"is_primary": true,
  			"label": null,
  			"line_end": 41,
  			"line_start": 41,
  			"suggested_replacement": null,
  			"suggestion_applicability": null,
  			"text": [{
  				"highlight_end": 84,
  				"highlight_start": 33,
  				"text": "                    Ok(unsafe { mem::transmute($schema_get(object.as_ptr(), field)) })"
  			}]
  		}]
  	}
  }

As far as I can tell, this JSON output matches the interfaces defined in https://github.com/actions-rs/clippy-check/blob/master/src/check.ts#L10

I'm not very familiar with Typescript or the semantics of JSON.parse and how @actions/exec (https://github.com/actions/toolkit/tree/master/packages/exec) pipes standard output through, so despite my best efforts I'm struggling to drill down to the root of this.

I'm using Rust 1.39.0 and the clippy action is running on the macOS-latest machine.

Maintenance Status

Is this still actively maintained?

Doesn't look like there's been any activity in the last 18 months

Option: Set commit status to failed if any lint warnings are posted

Motivation

I'd like my project to build with zero lint warnings.

Currently I use clippy-check as one of the GitHub warnings and โ€“as advertisedโ€“ it adds warnings to diffs generated in a pull request.

I would like it to go further and to set the status of any commit that has such warnings to "failed", so that I can use that status to block merging of any PR that introduces new warnings.

Workflow example

For backward compatibility, this could be a new opt-in flag, similar to the below:

jobs:
  clippy_check:
    name: Run Clippy lint checks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - run: rustup component add clippy
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features
        fail-on-warning: true

(I'm agnostic on the naming.)

Need to update to Node 16

Do the checklist before filing an issue:

Description

I'm seeing the following warning in my CI:

Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions-rs/clippy-check

Expected behavior

Expected no warnings :)

Additional context

I'm assuming this line simply needs to be updated, but I'm not sure if there are any risks with doing so.

Clippy action not properly reporting ICEs

(Accidentally opened this on the wrong repo)

Do the checklist before filing an issue:

Description

My current workflow has encountered an ICE, however, the clippy action doesn't acknoledge it as one in the generated report

Workflow code

Paste that part of your workflow yaml file that causes the bug in here.
  clippy:
    name: Clippy
    runs-on: ubuntu-latest

    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install nightly toolchain
        id: toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          components: clippy
          profile: minimal
          override: true

      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1

      - name: Run clippy
        uses: actions-rs/clippy-check@v1
        env:
          RUSTFLAGS: "-C target-cpu=haswell"
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features --tests --workspace

Action output

  thread 'rustc' panicked at 'assertion failed: self.start_pos.to_u32() + total_extra_bytes <= bpos.to_u32()', compiler/rustc_span/src/lib.rs:1677:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  
  error: internal compiler error: unexpected panic
  
  note: the compiler unexpectedly panicked. this is a bug.
  
  note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new
  
  note: Clippy version: clippy 0.1.58 (65f3f8b 2021-11-21)
  
  query stack during panic:
  #0 [analysis] running analysis passes on this crate
  end of query stack
  {"reason":"compiler-message","package_id":"starchart 0.4.0 (path+file:///home/runner/work/starchart/starchart)","manifest_path":"/home/runner/work/starchart/starchart/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"starchart","src_path":"/home/runner/work/starchart/starchart/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: 9 warnings emitted\n\n","children":[],"code":null,"level":"warning","message":"9 warnings emitted","spans":[]}}
  ##[debug]Message code is missing, ignoring it
  {"reason":"build-finished","success":false}
  ##[debug]Unexpected reason field, ignoring it: build-finished
  error: could not compile `starchart`; 10 warnings emitted
  ::endgroup::
Clippy results: 0 ICE, 0 errors, 9 warnings, 0 notes, 0 help
##[debug]Prepared next annotations bucket, 9 size
##[debug]This is a last iteration, marking check as "completed", conclusion: success
##[debug]Prepared next annotations bucket, 0 size
Error: Clippy had exited with the 101 exit code
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Run clippy

Expected behavior

The clippy report generated to have a one when reporting ICEs

Additional context

Add any other context about the problem here.
logs_1030.zip

Clippy failing with no errors:`[error]Invalid request.`

Hey @svartalf!

I'm looking forward to using clippy-check. Unfortunately I'm running into a bug when using it in CI with clippy stable with an unusual message:

Clippy results: 0 ICE, 0 errors, 462 warnings, 0 notes, 0 help
##[error]Invalid request.

No more than 50 items are allowed; 51 were supplied.
##[error]Node run failed with exit code 1

Here's a link to the failing build:
https://github.com/starship/starship/pull/455/checks?check_run_id=241891945

clippy job succeeds even when clippy_check fails

If a project fails to compile, the clippy annotation job will succeed. It currently only fails if the project compiles and its lints return results.

Related to this: the verbose JSON output from clippy_check is really hard to read. If a project fails to compile, it would be nice if the clippy job produced the compilation error in a human readable output.

Add option to fail check on warnings

Do the checklist before filing an issue:

Motivation

Currently, the check fails only when clippy returns an error. This makes it hard to notice when warnings occur, since Clippy warnings can also be helpful. As usual, noisy warnings can be disabled in code with #[allow(...)]. I would therefore like the option for the check to fail on both warnings and errors.

I would like this behavior both on in-repo PRs and forked PRs.

Workflow example

    - uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all-targets --all-features
        failure-mode: warnings

Additional context

See discussion in unicode-org/icu4x#161. Currently we are adding two different checks, the actions-rs version for the nice HTML in supported PRs, and a command line version with -- -D warnings to cause a failed check. It would simply and speed up our workflow if we didn't need the second check only for the check failure.

CC @echeran @Manishearth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.