Skip to content
This repository has been archived by the owner on Dec 21, 2023. It is now read-only.

Commit

Permalink
ci: Fix dependency license list generator pipeline (#7078)
Browse files Browse the repository at this point in the history
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
  • Loading branch information
mowies and thisthat committed Mar 23, 2022
1 parent 75c5971 commit a6c0877
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 17 deletions.
90 changes: 74 additions & 16 deletions .github/workflows/dependencies-and-licenses.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,63 +11,121 @@ jobs:
- name: Checkout Core Repo
uses: actions/checkout@v3
with:
path: 'keptn/keptn'
path: 'keptn'

- name: Checkout go-utils Repo
uses: actions/checkout@v3
with:
token: ${{ secrets.KEPTN_BOT_TOKEN }}
path: 'keptn/go-utils'
path: 'go-utils'
repository: 'keptn/go-utils'

- name: Checkout kubernetes-utils Repo
uses: actions/checkout@v3
with:
token: ${{ secrets.KEPTN_BOT_TOKEN }}
path: 'keptn/kubernetes-utils'
path: 'kubernetes-utils'
repository: 'keptn/kubernetes-utils'

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.17

- name: Install go-licence-detector
run: |
go get go.elastic.co/go-licence-detector
- name: Set up Node
uses: actions/setup-node@v3.0.0
with:
node-version: 16

- name: Install npm libs
run: |
yarn global add license-report
yarn global add license-report synp
- name: GO dependencies and licenses
run: |
TMP_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'keptndeps')
MODULES="api approval-service cli configuration-service distributor go-sdk helm-service jmeter-service lighthouse-service mongodb-datastore remediation-service secret-service shipyard-controller statistics-service webhook-service"
for MODULE in $MODULES; do
echo "🔍 Analyzing dependencies in module $MODULE"
( cd keptn/keptn/"$MODULE" || return ; go mod tidy > /dev/null 2>&1; go list -m -json all | go-licence-detector -depsTemplate=../.dependencies/templates/dependencies.csv.tmpl -depsOut="${TMP_DIR}"/"${MODULE}"-dependencies.txt -overrides=../.dependencies/overrides/overrides.json )
MODULES=(
api
approval-service
cli
configuration-service
distributor
go-sdk
helm-service
jmeter-service
lighthouse-service
mongodb-datastore
remediation-service
secret-service
shipyard-controller
statistics-service
webhook-service
resource-service
)
cd ./keptn || return
for MODULE in "${MODULES[@]}"; do
echo "🔍 Analyzing dependencies in module $MODULE"
cd ./"$MODULE" || return
go mod tidy
go list -m -json all | \
go-licence-detector \
-depsTemplate=../.dependencies/templates/dependencies.csv.tmpl \
-depsOut="${TMP_DIR}"/"${MODULE}"-dependencies.txt \
-overrides=../.dependencies/overrides/overrides.json
cd ..
done
cd ..
echo "🔍 Analyzing dependencies in go-utils"
( cd keptn/go-utils || return ; go mod tidy > /dev/null 2>&1; go list -m -json all | go-licence-detector -depsTemplate=../keptn/.dependencies/templates/dependencies.csv.tmpl -depsOut="${TMP_DIR}"/go-utils-dependencies.txt )
cd ./go-utils || return
go mod tidy
go list -m -json all | \
go-licence-detector \
-depsTemplate=../keptn/.dependencies/templates/dependencies.csv.tmpl \
-depsOut="${TMP_DIR}"/go-utils-dependencies.txt
cd ..
echo "🔍 Analyzing dependencies in kubernetes-utils"
( cd keptn/kubernetes-utils || return ; go mod tidy > /dev/null 2>&1; go list -m -json all | go-licence-detector -depsTemplate=../keptn/.dependencies/templates/dependencies.csv.tmpl -depsOut="${TMP_DIR}"/kubernetes-utils-dependencies.txt )
cd ./kubernetes-utils || return
go mod tidy
go list -m -json all | \
go-licence-detector \
-depsTemplate=../keptn/.dependencies/templates/dependencies.csv.tmpl \
-depsOut="${TMP_DIR}"/kubernetes-utils-dependencies.txt
cd ..
cat "$TMP_DIR"/*.txt | sort | uniq > dependencies-and-licenses-go.txt
echo
echo "👍 done. written results to ./dependencies-and-licenses-go.txt"
cat dependencies-and-licenses-go.txt
- name: Create license-report config file
run: |
echo '{ "fields": [ "name", "licenseType", "installedVersion", "link" ] }' > config.json
- name: Node dependencies and licenses
run: |
echo "🔍 Analyzing dependencies in module bridge"
( cd keptn/keptn/bridge || return ; license-report --only-prod --output=csv > ../../../dependencies-and-licenses-node.txt )
cd ./keptn/bridge || return
yarn install --frozen-lockfile
synp --source-file ./yarn.lock
license-report --only=prod --output=csv --config="config.json" > ../../dependencies-and-licenses-node.txt
cd ../..
echo
echo "👍 done. written results to ./dependencies-and-licenses-node.txt"
cat dependencies-and-licenses-node.txt
- name: Upload dependencies and licenses artifact
uses: actions/upload-artifact@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion shipyard-controller/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Use the official Golang image to create a build artifact.
# This is based on Debian and sets the GOPATH to /go.
FROM golang:1.17 as builder-base
FROM golang:1.17.5 as builder-base

# install additional dependencies
RUN apt-get install -y gcc libc-dev git
Expand Down

0 comments on commit a6c0877

Please sign in to comment.