evbindkeys 0.1.0

Like XBindKeys but without the X and per device
name: Release

on:
  push:
    tags:
    - '[0-9]+.[0-9]+.[0-9]+'
    - '[0-9]+.[0-9]+.[0-9]+-[a-zA-Z]+.[0-9]+'

jobs:
  build:
    name: Release
    runs-on: ubuntu-latest
    env:
      APPLICATION_NAME: evbindkeys
    steps:
      - name: Install libevdev
        run: sudo apt-get install libevdev-dev
      - name: Set release version
        run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV
      - name: Checkout source
        uses: actions/checkout@v2
      - name: Install rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Build source
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release
      - name: Test source
        uses: actions-rs/cargo@v1
        with:
          command: test
      - name: Login to crate.io
        uses: actions-rs/cargo@v1
        with:
          command: login
          args: ${{ secrets.CRATES_IO_TOKEN }}
      - name: Publish to crate.io
        uses: actions-rs/cargo@v1
        with:
          command: publish
      - name: Create package
        run: |
          tar -czvf ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz -C target/release ${{ env.APPLICATION_NAME }}
      - name: Create package checksum
        run: |
          sha256sum ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz > ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz.sha256sum
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1.0.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          draft: false
          prerelease: false
      - name: Upload Release Asset
        id: upload-release-asset
        uses: actions/upload-release-asset@v1.0.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz
          asset_name: ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz
          asset_content_type: application/octet-stream
      - name: Upload Release Asset Checksum
        id: upload-release-asset-checksum
        uses: actions/upload-release-asset@v1.0.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz.sha256sum
          asset_name: ${{ env.APPLICATION_NAME }}-${{ env.RELEASE_VERSION }}.tar.gz.sha256sum
          asset_content_type: text/plain