mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 08:23:15 +01:00
* migrate to binny and taskfile Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * update binny to not require github token Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * added support for automatically building snapshots Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * detect source changes for snapshot builds Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * fail workflow explicitly when snapshot cache restoral fails Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * match snapshot restoral paths Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> --------- Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
name: "Bootstrap"
|
|
|
|
description: "Bootstrap all tools and dependencies"
|
|
inputs:
|
|
go-version:
|
|
description: "Go version to install"
|
|
required: true
|
|
default: "1.21.x"
|
|
go-dependencies:
|
|
description: "Download go dependencies"
|
|
required: true
|
|
default: "true"
|
|
cache-key-prefix:
|
|
description: "Prefix all cache keys with this value"
|
|
required: true
|
|
default: "1ac8281053"
|
|
compute-fingerprints:
|
|
description: "Compute test fixture fingerprints"
|
|
required: true
|
|
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@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0
|
|
if: inputs.go-version != ''
|
|
with:
|
|
go-version: ${{ inputs.go-version }}
|
|
|
|
- name: Restore tool cache
|
|
id: tool-cache
|
|
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 #v3.3.2
|
|
with:
|
|
path: ${{ github.workspace }}/.tool
|
|
key: ${{ inputs.cache-key-prefix }}-${{ runner.os }}-tool-${{ hashFiles('.binny.yaml') }}
|
|
|
|
- name: Install project tools
|
|
shell: bash
|
|
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
|
|
run: |
|
|
DEBIAN_FRONTEND=noninteractive sudo apt update && sudo -E apt install -y ${{ inputs.bootstrap-apt-packages }}
|
|
|
|
- name: Create all cache fingerprints
|
|
if: inputs.compute-fingerprints == 'true'
|
|
shell: bash
|
|
run: make fingerprints
|
|
|