mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 08:23:15 +01:00
* Create independent build targets for Mac and Linux Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Create targets for macOS signing and notarization Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Create target for Linux packaging Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Update release workflow and leverage new make targets Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Add release assets to release draft Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Add homebrew formula release follow-up and improve Makefile Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Add follow-up workflow for updating version check file Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Get rid of fetch depth 0 for checkout action Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Add follow-up workflow for Docker images Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Restore wait-for-checks job Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Replace make functions with shell functions Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * Account for envsubst command in bootstrap-ci-linux Signed-off-by: Dan Luhring <dan.luhring@anchore.com> * move homebrew generation into script Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add release approval step; remove goreleaser; add docker image smoke testing in acceptance step Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * replace homebrew formula template file with heredoc template Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * update release documentation Signed-off-by: Alex Goodman <alex.goodman@anchore.com> Co-authored-by: Alex Goodman <alex.goodman@anchore.com>
48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eu -o pipefail
|
|
|
|
BIN="syft"
|
|
DISTDIR=$1
|
|
VERSION=$2
|
|
TEMPDIR=$3
|
|
|
|
SYFT_BIN_PATH=${DISTDIR}/${BIN}_linux_amd64/${BIN}
|
|
|
|
# stage the release tar directory
|
|
WORK_DIR=$(mktemp -d -t "syft-packaging-XXXXXX")
|
|
trap "rm -f ${WORK_DIR}/*; rmdir ${WORK_DIR};" EXIT
|
|
|
|
cp ./README.md ${WORK_DIR}
|
|
cp ./LICENSE ${WORK_DIR}
|
|
cp ${SYFT_BIN_PATH} ${WORK_DIR}
|
|
|
|
# produce .tar.gz
|
|
tar -cvzf "${DISTDIR}/${BIN}_${VERSION}_linux_amd64.tar.gz" -C ${WORK_DIR} .
|
|
|
|
# produce .deb, .rpm
|
|
NFPM_CONFIG=$(mktemp -t "syft-nfpm-cfg-XXXXXX")
|
|
cat > ${NFPM_CONFIG} <<-EOF
|
|
name: "syft"
|
|
license: "Apache 2.0"
|
|
maintainer: "Anchore, Inc"
|
|
homepage: "https://github.com/anchore/syft"
|
|
description: "A tool that generates a Software Bill Of Materials (SBOM) from container images and filesystems"
|
|
contents:
|
|
- src: ${SYFT_BIN_PATH}
|
|
dst: /usr/local/bin/syft
|
|
EOF
|
|
|
|
for packager in "deb" "rpm"; do
|
|
${TEMPDIR}/nfpm -f ${NFPM_CONFIG} pkg --packager="$packager" --target="${DISTDIR}/${BIN}_${VERSION}_linux_amd64.$packager"
|
|
done
|
|
|
|
# produce integrity-check files (checksums.txt, checksums.txt.sig)
|
|
pushd "${DISTDIR}"
|
|
CHECKSUMS_FILE="${BIN}_${VERSION}_checksums.txt"
|
|
echo "" > "$CHECKSUMS_FILE"
|
|
for file in ./*linux*.*; do
|
|
openssl dgst -sha256 "$file" >> "$CHECKSUMS_FILE"
|
|
done
|
|
gpg --detach-sign "$CHECKSUMS_FILE"
|
|
popd
|