diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 6a931dc37..84b11919c 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -4,10 +4,6 @@ on: branches: - main - develop - pull_request: - branches: - - main - - develop workflow_dispatch: jobs: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 000000000..d9841156c --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,68 @@ +name: Build DAPLink PR (Linux) +on: + pull_request: + branches: + - main + - develop + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-22.04 + strategy: + matrix: + gcc: ['10.3-2021.10'] + + steps: + - name: Install Arm GNU Toolchain (arm-none-eabi-gcc) + uses: carlosperate/arm-none-eabi-gcc-action@v1 + with: + release: ${{ matrix.gcc }} + path-env-var: ARM_NONE_EABI_GCC_PATH + + - name: Cache Python modules + id: cache-python + uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Checkout source files + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install Python module + run: | + pip3 install --user -r requirements.txt + + - name: Install dependencies + run: | + sudo apt install -y ccache ninja-build + arm-none-eabi-gcc -v | tee log.txt + (git status; git log -1)>> log.txt + + - name: Cache CCache + id: ccache + uses: actions/cache@v3 + with: + path: .ccache + key: ${{ runner.os }}-gcc-${{ matrix.gcc }}-${{ hashFiles('log.txt') }} + restore-keys: | + ${{ runner.os }}-gcc-${{ matrix.gcc }}- + + - name: Configure CCache + run: | + ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" + ccache --set-config=max_size=2Gi + ccache -s -z + + - name: Compile + run: | + export PATH="/usr/lib/ccache:$ARM_NONE_EABI_GCC_PATH:/home/runner/.local/bin:$PATH" + progen generate -t cmake_gcc_arm global_workspace + cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -GNinja -S projectfiles/cmake_gcc_arm -B projectfiles/cmake_gcc_arm + ninja -C projectfiles/cmake_gcc_arm + ccache -s