name: Reusable workflow example

on: workflow_call

jobs:
    build:

        runs-on: ubuntu-latest

        steps:
        - uses: actions/checkout@v3


        - name: Cache build tools
          id: cache-build-tools
          uses: actions/cache@v3
          env:
              cache-name: cache-build-tools
              dadk_version: 0.1.2
          with:
            path: |
              ~/.cargo
              ~/.rustup
              ~/.bashrc
            key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.dadk_version }}-${{ hashFiles('.github/workflows/cache-toolchain.yml') }}

        - if: ${{ steps.cache-build-tools.outputs.cache-hit != 'true' }}
          name: Install toolchain
          continue-on-error: true
          run:  |
            sudo sh -c "apt update && apt install -y llvm-dev libclang-dev clang gcc-multilib libssl-dev pkg-config"
            cargo install cargo-binutils
            rustup toolchain install nightly
            rustup default nightly
            rustup component add rust-src
            rustup component add llvm-tools-preview
            rustup target add x86_64-unknown-none
            rustup component add rust-src --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
            rustup component add rustfmt

            rustup toolchain install nightly-2023-08-15-x86_64-unknown-linux-gnu
            rustup component add rust-src --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
            rustup target add x86_64-unknown-linux-musl --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
            rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
            
            cargo install dadk --version 0.1.2