bustd 0.1.1

Lightweight process killer daemon for out-of-memory scenarios
on: [push, pull_request]

name: build-and-test

jobs:
  armv7-glibc:
    name: Ubuntu 18.04 (for ARMv7 - glibc)
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: armv7-unknown-linux-gnueabihf
          override: true

      - name: Install binutils-arm-none-eabi
        run: |
          sudo apt-get update
          sudo apt-get install binutils-arm-none-eabi
      
      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --release --target=armv7-unknown-linux-gnueabihf
          
      - name: Strip binary
        run: arm-none-eabi-strip target/armv7-unknown-linux-gnueabihf/release/bustd
          
      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          name: 'bustd-linux-armv7-glibc'
          path: target/armv7-unknown-linux-gnueabihf/release/bustd

  armv7-musl:
    name: Ubuntu 20.01 (for ARMv7 - musl)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: armv7-unknown-linux-musleabihf
          override: true

      - name: Install binutils-arm-none-eabi
        run: |
          sudo apt-get update
          sudo apt-get install binutils-arm-none-eabi
      
      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --release --target=armv7-unknown-linux-musleabihf
          
      - name: Strip binary
        run: arm-none-eabi-strip target/armv7-unknown-linux-musleabihf/release/bustd
          
      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          name: 'bustd-linux-armv7-musl'
          path: target/armv7-unknown-linux-musleabihf/release/bustd

  ubuntu:
    name: Ubuntu 20.04
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

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

      - name: Install dependencies for musl libc
        run: |
          sudo apt-get update
          sudo apt-get install musl-tools
      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release --target x86_64-unknown-linux-musl

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --release --target x86_64-unknown-linux-musl

      - name: Strip binary
        run: strip target/x86_64-unknown-linux-musl/release/bustd

      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          name: 'bustd-x86-64-musl'
          path: target/x86_64-unknown-linux-musl/release/bustd
          
  ubuntu-glibc:
    name: Ubuntu 18.04 - glibc
    runs-on: ubuntu-18.04
    strategy:
      matrix:
        rust:
          - stable
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

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

      - name: Run cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --release

      - name: Strip binary
        run: strip target/release/bustd

      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          name: 'bustd-x86-64-glibc'
          path: target/release/bustd