diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..17e339c --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,62 @@ +name: Rust + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: check out repository + uses: actions/checkout@v2 + + - name: set up rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: set up actions.rs + uses: actions-rs/cargo@v1 + + - name: cache rust dependencies + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + + - name: cache linux dependencies + uses: actions/cache@v2 + if: startsWith(runner.os, 'Linux') + with: + path: ~/.local/share/renv + key: ${{ runner.os }}-renv-${{ hashFiles('**/renv.lock') }} + restore-keys: | + ${{ runner.os }}-renv- + + - name: install all dependencies + run: | + sudo apt-get install libudev-dev libusb-1.0-0-dev + rustup +stable target add thumbv7em-none-eabi + + - name: build tools + working-directory: ./tools + run: cargo build --verbose + + - name: build beginner/apps + working-directory: ./beginner/apps + run: cargo build --verbose + + - name: build advanced/firmware + working-directory: ./advanced/firmware + run: cargo build --verbose diff --git a/README.md b/README.md index 44f1468..8ec2144 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,15 @@ $ nrfutil version nrfutil version 6.1.0 ``` -### USB permissions (Linux only) +### USB (Linux only) + +Some of our tools depend on `pkg-config` and `libudev.pc`. Ensure you have the proper packages installed; on Debian based distributions you can use: + +``` console +$ sudo apt-get install libudev-dev libusb-1.0-0-dev +``` + +To access the USB devices as a non-root user, follow these steps: 1. (Optional) Connect the dongle and check its permissions with these commands: