| name: Diff Check | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| clone_url: | |
| description: 'Git url of a rustfmt fork to compare against the latest rustfmt' | |
| required: true | |
| branch_name: | |
| description: 'Name of the feature branch on the forked repo' | |
| required: true | |
| language_edition: | |
| description: 'Rust language `edition` used to parse code' | |
| required: true | |
| default: 2015 | |
| type: choice | |
| options: | |
| - 2015 | |
| - 2018 | |
| - 2021 | |
| - 2024 | |
| style_edition: | |
| description: 'rustfmt `style_edition` used when formatting code.' | |
| required: true | |
| default: 2021 | |
| type: choice | |
| options: | |
| - 2021 # 2015, 2018, and 2021 are all formatted the same since `style_edition` was added between 2021 and 2024 | |
| - 2024 | |
| commit_hash: | |
| description: 'Optional commit hash from the feature branch' | |
| required: false | |
| rustfmt_configs: | |
| description: 'Optional comma separated list of rustfmt config options to pass when running the feature branch' | |
| required: false | |
| release_channel: | |
| description: 'Configure which release channel to use when compiling rustfmt' | |
| default: stable | |
| type: choice | |
| options: | |
| - stable | |
| - beta | |
| - nightly | |
| permissions: | |
| contents: read | |
| jobs: | |
| diff_check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Build check_diff binary | |
| working-directory: ./check_diff | |
| run: cargo build --release | |
| - name: Run Diff Check | |
| working-directory: ./check_diff | |
| env: | |
| CHECK_DIFF_LOG: info | |
| shell: bash | |
| run: | | |
| OPTIONS="" | |
| if [[ -n "${{ github.event.inputs.commit_hash }}" ]]; then | |
| OPTIONS+="--commit-hash ${{ github.event.inputs.commit_hash }} " | |
| fi | |
| if [[ -n "${{ github.event.inputs.rustfmt_configs }}" ]]; then | |
| OPTIONS+="--rustfmt-config ${{ github.event.inputs.rustfmt_configs }} " | |
| fi | |
| target/release/check_diff ${{ github.event.inputs.clone_url }} ${{ github.event.inputs.branch_name }} \ | |
| --edition ${{ github.event.inputs.language_edition }} \ | |
| --style-edition ${{ github.event.inputs.style_edition }} \ | |
| $OPTIONS |