name: Build RISC-V on: workflow_dispatch: push: paths: - 'src/**' - 'examples/**' - 'lib/**' - 'hw/**' - 'tools/get_deps.py' - '.github/workflows/build_riscv.yml' pull_request: branches: [ master ] paths: - 'src/**' - 'examples/**' - 'lib/**' - 'hw/**' - 'tools/get_deps.py' - '.github/workflows/build_riscv.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build-riscv: runs-on: ubuntu-latest strategy: fail-fast: false matrix: family: # Alphabetical order - 'ch32v307' - 'fomu' - 'gd32vf103' steps: - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.x' - name: Checkout TinyUSB uses: actions/checkout@v4 - name: Set Toolchain URL run: echo >> $GITHUB_ENV TOOLCHAIN_URL=https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v10.1.0-1.1/xpack-riscv-none-embed-gcc-10.1.0-1.1-linux-x64.tar.gz - name: Cache Toolchain uses: actions/cache@v3 id: cache-toolchain with: path: ~/cache/ key: ${{ runner.os }}-21-03-04-${{ env.TOOLCHAIN_URL }} - name: Install Toolchain if: steps.cache-toolchain.outputs.cache-hit != 'true' run: | mkdir -p ~/cache/toolchain wget --progress=dot:mega $TOOLCHAIN_URL -O toolchain.tar.gz tar -C ~/cache/toolchain -xaf toolchain.tar.gz - name: Set Toolchain Path run: echo >> $GITHUB_PATH `echo ~/cache/toolchain/*/bin` - name: Get Dependencies run: python3 tools/get_deps.py ${{ matrix.family }} - name: Build run: python3 tools/build_make.py ${{ matrix.family }}