From 8f078aeca4edfa57e86b8cec5e5e0eb1248ad923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20R=2E=20Miguel?= Date: Fri, 26 Mar 2021 00:45:37 -0300 Subject: [PATCH] Add GitHub Actions integration --- .github/workflows/build.yml | 129 ++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..946a001 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,129 @@ +on: [push, pull_request] + +name: build-and-test + +jobs: + ubuntu: + name: Ubuntu 18.04 + 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: ${{ matrix.rust }} + override: true + + - 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 + + - name: Install dependencies for Python test script + run: | + sudo apt-get update + sudo apt-get install libmagic1 + python3 -m pip install python-magic + + - name: Run test script + run: python3 makeshift_testing.py + + - name: Strip binary + run: strip target/release/ouch + + - name: Upload binary + uses: actions/upload-artifact@v2 + with: + name: 'ouch-ubuntu-18.04-glibc' + path: target/release/ouch + + macos: + name: macOS + runs-on: macos-latest + strategy: + matrix: + rust: + - stable + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + override: true + + - 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 + + - name: Install dependencies for Python test script + run: | + brew install libmagic + python3 -m pip install python-magic + + - name: Strip binary + run: strip target/release/ouch + + - name: Upload binary + uses: actions/upload-artifact@v2 + with: + name: 'ouch-macOS' + path: target/release/ouch + + - name: Run test script + run: python3 makeshift_testing.py + + windows: + name: Windows Server + runs-on: windows-2019 + strategy: + matrix: + rust: + - stable + steps: + - name: Checkout sources + uses: actions/checkout@v2 + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + override: true + + - 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 + + - name: Upload binary + uses: actions/upload-artifact@v2 + with: + name: 'ouch-windows' + path: target/release/ouch \ No newline at end of file