cargo-c 0.6.7

Helper program to build and install c-like libraries
Documentation
name: deploy

on:
  push:
    tags:
      - 'v*.*.*'

jobs:

  windows-binaries:

    strategy:
      matrix:
        conf:
         - msvc
         - gnu
        include:
         - conf: msvc
           toolchain: stable
         - conf: gnu
           toolchain: stable-x86_64-pc-windows-gnu

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install stable
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: ${{ matrix.toolchain }}
        override: true

    - name: Build cargo-c
      run: |
        cargo build --release

    - name: Strip gnu binaries
      if: matrix.conf == 'gnu'
      run: |
        strip "target\release\cargo-cbuild.exe" `
              "target\release\cargo-cinstall.exe"

    - name: Create zip
      run: |
        7z a cargo-c-windows-${{ matrix.conf }}.zip `
             "target\release\cargo-cbuild.exe" `
             "target\release\cargo-cinstall.exe"

    - name: Upload binaries
      uses: actions/upload-artifact@v2
      with:
        name: cargo-c-windows-${{ matrix.conf }}-binaries
        path: cargo-c-windows-${{ matrix.conf }}.zip

  linux-binaries:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install musl-tools
      run: |
        sudo apt-get install musl-tools

    - name: Install Rust stable and musl target
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
        target: x86_64-unknown-linux-musl
        override: true

    - name: Build openssl for musl
      run: |
         OPENSSL_BIN=target/x86_64-unknown-linux-musl/release/build
         git clone --depth 1 https://github.com/sfackler/rust-openssl
         cd rust-openssl/openssl-sys
         cargo build --target x86_64-unknown-linux-musl \
                     --release \
                     --features=vendored
         mv ../$OPENSSL_BIN/openssl-sys-*/out/openssl-build/install/* \
            $GITHUB_WORKSPACE

    - name: Build cargo-c
      run: |
        export OPENSSL_LIB_DIR=$GITHUB_WORKSPACE/lib
        export OPENSSL_INCLUDE_DIR=$GITHUB_WORKSPACE/include
        cargo build --target x86_64-unknown-linux-musl --release

    - name: Create zip
      run: |
        cd target/x86_64-unknown-linux-musl/release
        strip cargo-cbuild cargo-cinstall
        tar -czvf $GITHUB_WORKSPACE/cargo-c-linux.tar.gz \
                  cargo-cbuild \
                  cargo-cinstall

    - name: Upload binaries
      uses: actions/upload-artifact@v2
      with:
        name: cargo-c-linux-binaries
        path: cargo-c-linux.tar.gz

  macos-binaries:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install stable
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
        override: true

    - name: Build cargo-c
      run: |
        cargo build --release

    - name: Create zip
      run: |
        cd target/release
        strip cargo-cbuild cargo-cinstall
        zip $GITHUB_WORKSPACE/cargo-c-macos.zip \
            cargo-cbuild \
            cargo-cinstall

    - name: Upload binaries
      uses: actions/upload-artifact@v2
      with:
        name: cargo-c-macos-binaries
        path: cargo-c-macos.zip

  deploy:

    needs: [windows-binaries, linux-binaries, macos-binaries]

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Download zip files
      uses: actions/download-artifact@v2

    - name: Create Cargo.lock
      run: |
        cargo update

    - name: Create a release
      uses: softprops/action-gh-release@v1
      with:
        files: |
          Cargo.lock
          cargo-c-linux-binaries/cargo-c-linux.tar.gz
          cargo-c-macos-binaries/cargo-c-macos.zip
          cargo-c-windows-msvc-binaries/cargo-c-windows-msvc.zip
          cargo-c-windows-gnu-binaries/cargo-c-windows-gnu.zip
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}