name: "Bootstrap" description: "Bootstrap all tools and dependencies" inputs: go-version: description: "Go version to install" required: true default: ">= 1.24" go-dependencies: description: "Download go dependencies" required: true default: "true" cache-key-prefix: description: "Prefix all cache keys with this value" required: true default: "53ac821810" download-test-fixture-cache: description: "Download test fixture cache from OCI and github actions" required: true default: "false" tools: description: "whether to install tools" default: "true" bootstrap-apt-packages: description: "Space delimited list of tools to install via apt" default: "libxml2-utils" runs: using: "composite" steps: # note: go mod and build is automatically cached on default with v4+ - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 if: inputs.go-version != '' with: go-version: ${{ inputs.go-version }} - name: Restore tool cache if: inputs.tools == 'true' id: tool-cache uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: ${{ github.workspace }}/.tool key: ${{ inputs.cache-key-prefix }}-${{ runner.os }}-tool-${{ hashFiles('.binny.yaml') }} - name: Install project tools shell: bash if: inputs.tools == 'true' run: make tools - name: Install go dependencies if: inputs.go-dependencies == 'true' shell: bash run: make ci-bootstrap-go - name: Install apt packages if: inputs.bootstrap-apt-packages != '' shell: bash env: APT_PACKAGES: ${{ inputs.bootstrap-apt-packages }} run: | IFS=' ' read -ra packages <<< "$APT_PACKAGES" DEBIAN_FRONTEND=noninteractive sudo apt update && sudo -E apt install -y "${packages[@]}" - name: Restore ORAS cache from github actions if: inputs.download-test-fixture-cache == 'true' uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: ${{ github.workspace }}/.tmp/oras-cache key: ${{ inputs.cache-key-prefix }}-oras-cache - name: Download test fixture cache if: inputs.download-test-fixture-cache == 'true' shell: bash run: make download-test-fixture-cache