name: CI on: pull_request: push: branches: - 'staging' - 'master' jobs: formatting: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: dprint/check@v2.0 clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal override: true toolchain: stable components: clippy - uses: Swatinem/rust-cache@v1.3.0 - run: cargo clippy --workspace --all-targets -- -D warnings check_frontend: defaults: run: working-directory: frontend runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: cache: 'yarn' cache-dependency-path: frontend/yarn.lock - run: yarn install - run: yarn run eslint - run: yarn run tsc build_and_test_frontend: strategy: matrix: app: [ maker, taker ] defaults: run: working-directory: frontend runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: cache: 'yarn' cache-dependency-path: frontend/yarn.lock - run: yarn install - run: APP=${{ matrix.app }} yarn test - run: APP=${{ matrix.app }} yarn build test_daemons: strategy: matrix: target: [ x86_64-unknown-linux-gnu, x86_64-apple-darwin ] include: - target: x86_64-unknown-linux-gnu os: ubuntu-latest - target: x86_64-apple-darwin os: macos-latest - target: armv7-unknown-linux-gnueabihf os: ubuntu-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup rust toolchain run: rustup show - uses: Swatinem/rust-cache@v1.3.0 - name: Install compiler for armhf arch if: matrix.target == 'armv7-unknown-linux-gnueabihf' run: | sudo apt-get update sudo apt-get install gcc-arm-linux-gnueabihf - run: cargo build --target ${{ matrix.target }} - run: cargo test --workspace - name: Smoke test ${{ matrix.target }} binary if: matrix.target != 'armv7-unknown-linux-gnueabihf' run: | target/${{ matrix.target }}/debug/maker --data-dir=/tmp/maker --generate-seed & sleep 5s # Wait for maker to start target/${{ matrix.target }}/debug/taker --data-dir=/tmp/taker --generate-seed & sleep 5s # Wait for taker to start curl --fail http://localhost:8000/api/alive curl --fail http://localhost:8001/api/alive - name: Upload binaries uses: actions/upload-artifact@v2 with: name: maker-and-taker-binaries-${{ matrix.target }} path: | target/${{ matrix.target }}/debug/maker target/${{ matrix.target }}/debug/taker