name: Release

on:
  push:
    tags:
      - '*'

jobs:
  build-linux-amd64-static:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: x86_64-unknown-linux-musl
      - run: sudo apt-get update && sudo apt-get install -y musl-tools

      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release --target x86_64-unknown-linux-musl
      - run: strip target/x86_64-unknown-linux-musl/release/kubie
      - run: ls -lh target/x86_64-unknown-linux-musl/release/

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/x86_64-unknown-linux-musl/release/kubie
          asset_name: kubie-linux-amd64
          tag: ${{ github.ref }}

  build-linux-arm32-static:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: arm-unknown-linux-musleabi
          override: true

      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --release --target arm-unknown-linux-musleabi

      # Turns out using the gnueabi strip tool on musleabi works, couldn't find the musleabi strip tool...
      - run: sudo apt-get update && sudo apt-get install -y binutils-arm-linux-gnueabi
      - run: arm-linux-gnueabi-strip target/arm-unknown-linux-musleabi/release/kubie
      - run: ls -lh target/arm-unknown-linux-musleabi/release/

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/arm-unknown-linux-musleabi/release/kubie
          asset_name: kubie-linux-arm32
          tag: ${{ github.ref }}

  build-linux-arm64-static:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: aarch64-unknown-linux-musl
          override: true

      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --release --target aarch64-unknown-linux-musl

      # Turns out using the gnu strip tool on musl works, couldn't find the musl strip tool...
      - run: sudo apt-get update && sudo apt-get install -y binutils-aarch64-linux-gnu
      - run: aarch64-linux-gnu-strip target/aarch64-unknown-linux-musl/release/kubie
      - run: ls -lh target/aarch64-unknown-linux-musl/release/

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/aarch64-unknown-linux-musl/release/kubie
          asset_name: kubie-linux-arm64
          tag: ${{ github.ref }}

  build-macos-amd64:
    runs-on: macos-10.15
    steps:
      - uses: actions/checkout@v2

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release
      - run: strip target/release/kubie
      - run: ls -lh target/release/

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/release/kubie
          asset_name: kubie-darwin-amd64
          tag: ${{ github.ref }}

  build-macos-arm64:
    runs-on: macos-10.15
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: aarch64-apple-darwin

      - run: SDKROOT=$(xcrun --sdk macosx --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --release --target aarch64-apple-darwin
      - run: strip target/aarch64-apple-darwin/release/kubie
      - run: ls -lh target/aarch64-apple-darwin/release/

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/aarch64-apple-darwin/release/kubie
          asset_name: kubie-darwin-arm64
          tag: ${{ github.ref }}

