uptime_lib 0.2.1

Multi-platform uptime library
Documentation
name: Release

on:
  push:
    tags:
    - 'v*'

jobs:

  build:
    strategy:
      matrix:
        target:
        - linux
        - darwin
        include:
        - target: linux
          os: ubuntu-latest
        - target: darwin
          os: macos-latest
    runs-on: ${{ matrix.os }}
    steps:
    - name: Checkout code
      uses: actions/checkout@master
    - name: Build
      run: cargo build
    - name: Install
      run: cargo install
    - name: Test
      run: cargo test
    - name: Run
      run: cargo run
    - name: Set the executable name
      id: executable
      run: echo "::set-output name=name::$(basename $PWD)"
    - name: Set the asset name
      id: asset
      run: echo "::set-output name=name::${{ steps.executable.outputs.name }}_${GITHUB_REF#refs/tags/}_${{ matrix.target }}_amd64"
    - name: Build artifact
      run: |
        export PATH=$PATH:~/.cache/cargo/bin
        name=${{ steps.asset.outputs.name }}
        mkdir $name
        cp README.md LICENSE $name
        mv $(which ${{ steps.executable.outputs.name }}) $name
        zip -r $name.zip $name
      env:
        TARGET: ${{ matrix.target }}
    - name: Upload artifact
      uses: actions/upload-artifact@master
      with:
        name: ${{ matrix.target }}
        path: ${{ steps.asset.outputs.name }}.zip

  create-release:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
    - name: Create release
      id: create-release
      uses: actions/create-release@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false
    - name: Save release upload url
      run: |
        echo '${{ steps.create-release.outputs.upload_url }}' > release_upload_url.txt
    - name: Upload release upload url
      uses: actions/upload-artifact@master
      with:
        name: create-release
        path: release_upload_url.txt

  upload-release:
    strategy:
      matrix:
        target:
        - linux
        - darwin
    needs: [create-release]
    runs-on: ubuntu-latest
    steps:
    - name: Download release upload url
      uses: actions/download-artifact@master
      with:
        name: create-release
    - name: Set upload url
      id: upload-url
      run: |
        echo "::set-output name=url::$(cat release_upload_url.txt)"
    - name: Download artifact
      uses: actions/download-artifact@master
      with:
        name: ${{ matrix.target }}
    - name: Set the executable name
      id: executable
      run: echo "::set-output name=name::$(basename $PWD)"
    - name: Set the asset name
      id: asset
      run: echo "::set-output name=name::${{ steps.executable.outputs.name }}_${GITHUB_REF#refs/tags/}_${{ matrix.target }}_amd64"
    - name: Upload release artifact
      uses: actions/upload-release-asset@master
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.upload-url.outputs.url }}
        asset_path: ${{ steps.asset.outputs.name }}.zip
        asset_name: ${{ steps.asset.outputs.name }}.zip
        asset_content_type: application/zip