printr 0.1.3

The smarter echo alternative
Documentation
name: build

on:
  push:
    tags: ["v*.*.*"]

env:
  APP_NAME: "printr"

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v1

      - name: Run tests
        run: cargo test --verbose

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get -y install gcc-mingw-w64-x86-64 gcc-mingw-w64-i686
          rustup target add x86_64-pc-windows-gnu
          rustup target add i686-pc-windows-gnu
          rustup target add x86_64-unknown-linux-gnu
          rustup target add x86_64-apple-darwin
          mkdir dist
          mkdir builds
      - name: Build Win64
        run: |
          cargo rustc --bin ${{ env.APP_NAME }} --release --target=x86_64-pc-windows-gnu -- -C linker=x86_64-w64-mingw32-gcc
          mkdir builds/${{ env.APP_NAME }}-win64
          cp target/x86_64-pc-windows-gnu/release/${{ env.APP_NAME }}.exe builds/${{ env.APP_NAME }}-win64
          tar -C builds -czvf dist/${{ env.APP_NAME }}-win64.tar.gz ${{ env.APP_NAME }}-win64
      - name: Cache Mac OS dependencies
        id: cache-macos
        uses: actions/cache@v2
        with:
          path: osxcross
          key: osxcross

      - name: Install Mac OS dependencies
        if: steps.cache-macos.outputs.cache-hit != 'true'
        run: |
          git clone https://github.com/tpoechtrager/osxcross
          cd osxcross
          sudo tools/get_dependencies.sh
          wget -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz
          mv MacOSX10.10.sdk.tar.xz tarballs/
          UNATTENDED=yes OSX_VERSION_MIN=10.7 ./build.sh
      - name: Build Mac OS
        env:
          CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER: "x86_64-apple-darwin14-clang"
        run: |
          export PATH="$(pwd)/osxcross/target/bin:$PATH"
          export LIBZ_SYS_STATIC=1
          export CC=o64-clang
          export CXX=o64-clang++
          cargo build --release --target "x86_64-apple-darwin"
          mkdir builds/${{ env.APP_NAME }}-macos
          cp target/x86_64-apple-darwin/release/${{ env.APP_NAME }} builds/${{ env.APP_NAME }}-macos
          tar -C builds -czvf dist/${{ env.APP_NAME }}-macos.tar.gz ${{ env.APP_NAME }}-macos
      - name: Build Linux
        run: |
          cargo rustc --bin ${{ env.APP_NAME }} --release --target=x86_64-unknown-linux-gnu
          mkdir builds/${{ env.APP_NAME }}-linux
          cp target/x86_64-unknown-linux-gnu/release/${{ env.APP_NAME }} builds/${{ env.APP_NAME }}-linux
          tar -C builds -czvf dist/${{ env.APP_NAME }}-linux.tar.gz ${{ env.APP_NAME }}-linux
      - name: Upload release
        uses: softprops/action-gh-release@v1
        with:
          body_path: CHANGELOG.md
          files: |
            dist/${{ env.APP_NAME }}-win64.tar.gz
            dist/${{ env.APP_NAME }}-linux.tar.gz
            dist/${{ env.APP_NAME }}-macos.tar.gz
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}