|  | 'on': | 
        
          |  | push: | 
        
          |  | branches: | 
        
          |  | - '*' | 
        
          |  | pull_request: null | 
        
          |  | jobs: | 
        
          |  | check: | 
        
          |  | runs-on: ubuntu-latest | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@v2 | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/registry | 
        
          |  | key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/git | 
        
          |  | key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: target | 
        
          |  | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | 
        
          |  | - uses: actions-rs/toolchain@v1 | 
        
          |  | with: | 
        
          |  | profile: minimal | 
        
          |  | toolchain: stable | 
        
          |  | override: true | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: check | 
        
          |  | test: | 
        
          |  | runs-on: '${{ matrix.os }}' | 
        
          |  | strategy: | 
        
          |  | matrix: | 
        
          |  | include: | 
        
          |  | - os: macos-latest | 
        
          |  | - os: ubuntu-latest | 
        
          |  | - os: windows-latest | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@v2 | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/registry | 
        
          |  | key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/git | 
        
          |  | key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: target | 
        
          |  | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | 
        
          |  | - uses: actions-rs/toolchain@v1 | 
        
          |  | with: | 
        
          |  | profile: minimal | 
        
          |  | toolchain: stable | 
        
          |  | override: true | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: test | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: run | 
        
          |  | args: '-- -h' | 
        
          |  | lints: | 
        
          |  | runs-on: ubuntu-latest | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@v2 | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/registry | 
        
          |  | key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/git | 
        
          |  | key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: target | 
        
          |  | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | 
        
          |  | - uses: actions-rs/toolchain@v1 | 
        
          |  | with: | 
        
          |  | profile: minimal | 
        
          |  | toolchain: stable | 
        
          |  | override: true | 
        
          |  | components: 'rustfmt, clippy' | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: fmt | 
        
          |  | args: '--all -- --check' | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: clippy | 
        
          |  | args: '-- -D warnings' | 
        
          |  | version: | 
        
          |  | runs-on: ubuntu-latest | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@master | 
        
          |  | with: | 
        
          |  | lfs: true | 
        
          |  | - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | 
        
          |  | - id: get_previous_version | 
        
          |  | run: echo ::set-output name=PREVIOUS_VERSION::$(git describe --tags "$(git rev-list --tags --max-count=1)") | 
        
          |  | shell: bash | 
        
          |  | - id: semvers | 
        
          |  | uses: WyriHaximus/github-action-next-semvers@master | 
        
          |  | with: | 
        
          |  | version: '${{ steps.get_previous_version.outputs.PREVIOUS_VERSION }}' | 
        
          |  | - run: mkdir -p ./version | 
        
          |  | - if: "!contains(github.event.head_commit.message, 'BC BREAK') && !contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <[email protected]>')" | 
        
          |  | run: echo "$VERSION" >./version/version | 
        
          |  | env: | 
        
          |  | VERSION: ${{ steps.semvers.outputs.v_minor }} | 
        
          |  | - if: "contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <[email protected]>')" | 
        
          |  | run: echo "$VERSION" >./version/version | 
        
          |  | env: | 
        
          |  | VERSION: ${{ steps.semvers.outputs.v_patch }} | 
        
          |  | - run: echo "$VERSION" > ./version/version | 
        
          |  | env: | 
        
          |  | VERSION: ${{ steps.semvers.outputs.v_major }} | 
        
          |  | if: "contains(github.event.head_commit.message, 'BC BREAK')" | 
        
          |  | - uses: actions/upload-artifact@master | 
        
          |  | with: | 
        
          |  | name: version | 
        
          |  | path: ./version/version | 
        
          |  | build: | 
        
          |  | needs: | 
        
          |  | - version | 
        
          |  | - lints | 
        
          |  | - test | 
        
          |  | - check | 
        
          |  | runs-on: '${{ matrix.os }}' | 
        
          |  | strategy: | 
        
          |  | matrix: | 
        
          |  | include: | 
        
          |  | - os: macos-latest | 
        
          |  | target: x86_64-apple-darwin | 
        
          |  | suffix: '' | 
        
          |  | - os: ubuntu-latest | 
        
          |  | target: x86_64-unknown-linux-gnu | 
        
          |  | suffix: '' | 
        
          |  | - os: windows-latest | 
        
          |  | target: x86_64-pc-windows-msvc | 
        
          |  | suffix: .exe | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@master | 
        
          |  | with: | 
        
          |  | lfs: true | 
        
          |  | - id: get_repository_name | 
        
          |  | run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") | 
        
          |  | shell: bash | 
        
          |  | - uses: actions/download-artifact@master | 
        
          |  | with: | 
        
          |  | name: version | 
        
          |  | - id: get_version | 
        
          |  | run: 'echo ::set-output "name=VERSION::$(cat ./version/version)"' | 
        
          |  | shell: bash | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/registry | 
        
          |  | key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: ~/.cargo/git | 
        
          |  | key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | 
        
          |  | - uses: actions/cache@v1 | 
        
          |  | with: | 
        
          |  | path: target | 
        
          |  | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | 
        
          |  | - uses: actions-rs/toolchain@v1 | 
        
          |  | with: | 
        
          |  | profile: minimal | 
        
          |  | toolchain: stable | 
        
          |  | override: true | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: install | 
        
          |  | args: 'toml-cli' | 
        
          |  | - shell: bash | 
        
          |  | env: | 
        
          |  | VERSION: '${{ steps.get_version.outputs.VERSION }}' | 
        
          |  | run: | | 
        
          |  | TEMP_FILE="$(mktemp)" | 
        
          |  | toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" | 
        
          |  | mv "$TEMP_FILE" Cargo.toml | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | env: | 
        
          |  | VERSION: '${{ steps.get_version.outputs.VERSION }}' | 
        
          |  | REPOSITORY_NAME: '${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}' | 
        
          |  | with: | 
        
          |  | command: build | 
        
          |  | args: '--release' | 
        
          |  | - uses: actions/upload-artifact@master | 
        
          |  | with: | 
        
          |  | name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-${{ matrix.target }} | 
        
          |  | path: ./target/release/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}${{ matrix.suffix }} | 
        
          |  | release: | 
        
          |  | if: github.ref == 'refs/heads/master' | 
        
          |  | needs: | 
        
          |  | - build | 
        
          |  | runs-on: ubuntu-latest | 
        
          |  | steps: | 
        
          |  | - uses: actions/checkout@master | 
        
          |  | with: | 
        
          |  | lfs: true | 
        
          |  | - id: get_repository_name | 
        
          |  | run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") | 
        
          |  | shell: bash | 
        
          |  | - uses: actions/download-artifact@master | 
        
          |  | with: | 
        
          |  | name: version | 
        
          |  | - id: get_version | 
        
          |  | run: 'echo ::set-output name=VERSION::$(cat ./version/version)' | 
        
          |  | shell: bash | 
        
          |  | - uses: actions/download-artifact@master | 
        
          |  | with: | 
        
          |  | name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu | 
        
          |  | - uses: actions/download-artifact@master | 
        
          |  | with: | 
        
          |  | name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin | 
        
          |  | - uses: actions/download-artifact@master | 
        
          |  | with: | 
        
          |  | name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc | 
        
          |  | - uses: actions-rs/toolchain@v1 | 
        
          |  | with: | 
        
          |  | profile: minimal | 
        
          |  | toolchain: stable | 
        
          |  | override: true | 
        
          |  | - uses: actions-rs/cargo@v1 | 
        
          |  | with: | 
        
          |  | command: install | 
        
          |  | args: 'toml-cli' | 
        
          |  | - run: | | 
        
          |  | TEMP_FILE="$(mktemp)" | 
        
          |  | toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" | 
        
          |  | mv "$TEMP_FILE" Cargo.toml | 
        
          |  | shell: bash | 
        
          |  | env: | 
        
          |  | VERSION: '${{ steps.get_version.outputs.VERSION }}' | 
        
          |  | - uses: stefanzweifel/[email protected] | 
        
          |  | with: | 
        
          |  | commit_message: Bump cargo version | 
        
          |  | branch: ${{ github.head_ref }} | 
        
          |  | file_pattern: Cargo.toml | 
        
          |  | - id: create_release | 
        
          |  | uses: actions/[email protected] | 
        
          |  | env: | 
        
          |  | GITHUB_TOKEN: '${{ secrets.COMMITTER_TOKEN }}' | 
        
          |  | with: | 
        
          |  | tag_name: '${{ steps.get_version.outputs.VERSION }}' | 
        
          |  | release_name: 'Release ${{ steps.get_version.outputs.VERSION }}' | 
        
          |  | draft: false | 
        
          |  | prerelease: false | 
        
          |  | - uses: actions/[email protected] | 
        
          |  | env: | 
        
          |  | GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | 
        
          |  | with: | 
        
          |  | upload_url: '${{ steps.create_release.outputs.upload_url }}' | 
        
          |  | asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }} | 
        
          |  | asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu | 
        
          |  | asset_content_type: application/octet-stream | 
        
          |  | - uses: actions/[email protected] | 
        
          |  | env: | 
        
          |  | GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | 
        
          |  | with: | 
        
          |  | upload_url: '${{ steps.create_release.outputs.upload_url }}' | 
        
          |  | asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }} | 
        
          |  | asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin | 
        
          |  | asset_content_type: application/octet-stream | 
        
          |  | - uses: actions/[email protected] | 
        
          |  | env: | 
        
          |  | GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | 
        
          |  | with: | 
        
          |  | upload_url: '${{ steps.create_release.outputs.upload_url }}' | 
        
          |  | asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}.exe | 
        
          |  | asset_name:  ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc.exe | 
        
          |  | asset_content_type: application/octet-stream | 
        
          |  |  |