Skip to content

test trivy

test trivy #125

Workflow file for this run

---
name: Release
on:
push:
branches:
- test-trivy
# workflow_dispatch:
# inputs:
# version:
# description: "The RC/Release version, format: X.Y.Z-rcN for RC, X.Y.Z for releases"
# required: true
permissions:
contents: read
packages: write
checks: write
pull-requests: write
jobs:
build:
runs-on: ubuntu-latest
env:
TOOLS_PATH: "/opt/tools/bin"
#VERSION: ${{ github.event.inputs.version }}
VERSION: 100.100.200-rc1
# version in format "X.Y" which is going to be updated with each patch release
FLOATING_TAG: ''
# branch name in format "release-X.Y"
BRANCH_NAME: ''
# GitHub tag name to use for the RC/Release
GH_TAG: ''
# Shows if this workflow is triggered for RC or Release
IS_RC: 0
ARCH: ''
OS: ''
IMAGE_TO_CHECK: ''
steps:
- name: Validate input
run: |
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-rc[1-9][0-9]*)?$ ]]; then
echo "Wrong version format provided, please use "X.Y.Z-rcN" format for an RC or "X.Y.Z" format for a release"
exit 1
fi
- name: Set environment variables
run: |
floating_tag=${VERSION%.*}
echo "FLOATING_TAG=$floating_tag" >> $GITHUB_ENV
echo "BRANCH_NAME=release-$floating_tag" >> $GITHUB_ENV
echo "GH_TAG=v$VERSION" >> $GITHUB_ENV
if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "IS_RC=1" >> $GITHUB_ENV
fi
echo "ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" >> $GITHUB_ENV
echo "OS=$(uname | awk '{print tolower($0)}')" >> $GITHUB_ENV
# - name: Operator - check out
# uses: actions/checkout@v4
# with:
# repository: percona/everest-operator
# path: everest-operator
# token: ${{ secrets.ROBOT_TOKEN }}
# - name: Operator - create release branch
# run: |
# cd everest-operator
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
#
# git checkout $BRANCH_NAME
#
# # update version in the Makefile
# sed -i "s/^VERSION ?=.*/VERSION ?= $VERSION/g" Makefile
#
# make init
# make release
#
# # if there is something to commit, commit it and add the tag
# if [[ -n $(git status --porcelain) ]]; then
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
#
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# # commit and push the updated files
# git commit -a -m "update version tag"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
# fi
# - name: Operator - install operator-sdk
# run: |
# mkdir -p $TOOLS_PATH
# echo $TOOLS_PATH >> $GITHUB_PATH
#
# export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.25.2
# curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
#
# gpg --keyserver keyserver.ubuntu.com --recv-keys 052996E2A20B5C7E
#
# curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt
# curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt.asc
# gpg -u "Operator SDK (release) <[email protected]>" --verify checksums.txt.asc
#
# grep operator-sdk_${OS}_${ARCH} checksums.txt | sha256sum -c -
#
# chmod +x operator-sdk_${OS}_${ARCH}
# mv operator-sdk_${OS}_${ARCH} $TOOLS_PATH/operator-sdk
#
# - name: Operator - build and bundle
# run: |
# cd everest-operator
# make build manifests bundle
#
#
- name: Operator - setup Docker meta for everest-operator
id: operator_meta
uses: docker/metadata-action@v4
# docker/metadata-action action looks more elegant when being triggered by a GH tag,
# however this workflow can't be triggered by a GH tag since there are some changes need to be done
# in the codebase prior putting the tag, so the action uses the raw tags
with:
images: |
perconalab/everest-operator
tags: |
type=raw,value=100.100.300
type=raw,value=100.100.600
#
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
#
# - name: Operator - build and push operator everest-operator image
# uses: docker/build-push-action@v3
# with:
# context: everest-operator
# push: false
# tags: ${{ steps.operator_meta.outputs.tags }}
# - name: test
# run: |
# echo "---"
# echo $(echo )
# echo "---"
- name: Operator - set image to scan
run: |
image_to_check = echo "${{ steps.operator_meta.outputs.tags }}" | head -n 1
echo "IMAGE_TO_CHECK=$image_to_check" >> $GITHUB_ENV
- name: Operator - Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: ${{ env.IMAGE_TO_CHECK }}
format: 'table'
exit-code: '1'
severity: 'CRITICAL,HIGH'
# - name: Operator - build and push everest-operator-bundle image
# uses: docker/build-push-action@v3
# with:
# context: everest-operator
# push: true
# tags: ${{ steps.bundle_meta.outputs.tags }}
# file: everest-operator/bundle.Dockerfile
#
# - name: Run Trivy vulnerability scanner
# uses: aquasecurity/[email protected]
# with:
# image-ref: ${{ steps.bundle_meta.outputs.tags }}
# format: 'table'
# exit-code: '1'
# severity: 'CRITICAL,HIGH'
#
# - name: Catalog - checkout
# uses: actions/checkout@v4
# with:
# repository: percona/everest-catalog
# path: everest-catalog
# token: ${{ secrets.ROBOT_TOKEN }}
#
# - name: Catalog - create release branch
# run: |
# cd everest-catalog
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
#
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
# git checkout $BRANCH_NAME
#
# # update tag refs in scripts
# if [[ $env.IS_RC ]]; then
# sed -i "s/perconalab\/everest-operator-bundle.*/perconalab\/everest-operator-bundle:$VERSION/g" catalog/everest-operator/veneer.yaml
# sed -i "s/percona\/everest-operator-bundle.*/perconalab\/everest-operator-bundle:$VERSION/g" catalog/everest-operator/veneer.yaml
# else
# sed -i "s/perconalab\/everest-operator-bundle.*/percona\/everest-operator-bundle:$VERSION/g" catalog/everest-operator/veneer.yaml
# sed -i "s/percona\/everest-operator-bundle.*/percona\/everest-operator-bundle:$VERSION/g" catalog/everest-operator/veneer.yaml
# fi
#
# curl -Lo /tmp/opm https://github.com/operator-framework/operator-registry/releases/latest/download/${OS}-${ARCH}-opm
# chmod +x /tmp/opm
# /tmp/opm alpha render-template semver -o yaml < ./catalog/everest-operator/veneer.yaml > ./catalog/everest-operator/catalog.yaml
#
# # if there is something to commit, commit it and add the tag
# if [[ -n $(git status --porcelain) ]]; then
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
#
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# # commit and push the updated files
# git commit -a -m "update version tag"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
# fi
#
#
# - name: Catalog - docker meta
# id: catalog_meta
# uses: docker/metadata-action@v4
# with:
# images: |
# percona/everest-catalog,enable=${{ env.IS_RC == 0 }}
# perconalab/everest-catalog
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=latest
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
#
# - name: Catalog - build and push image
# uses: docker/build-push-action@v3
# with:
# context: everest-catalog
# push: true
# tags: ${{ steps.catalog_meta.outputs.tags }}
# file: everest-catalog/everest-catalog.Dockerfile
#
# - name: Run Trivy vulnerability scanner
# uses: aquasecurity/[email protected]
# with:
# image-ref: ${{ steps.catalog_meta.outputs.tags }}
# format: 'table'
# exit-code: '1'
# severity: 'CRITICAL,HIGH'
#
# - name: Everest - check out
# uses: actions/checkout@v4
# with:
# token: ${{ secrets.ROBOT_TOKEN }}
#
# - name: Everest - setup golang
# uses: actions/setup-go@v5
# with:
# go-version-file: './go.mod'
#
# - name: Everest - create and update release branch
# run: |
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
#
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
# git checkout $BRANCH_NAME
#
# # Update deploy manifest
# if [[ $env.IS_RC ]]; then
# sed -i "s/perconalab\/everest.*/perconalab\/everest:$VERSION/g" deploy/quickstart-k8s.yaml
# sed -i "s/percona\/percona-everest.*/perconalab\/everest:$VERSION/g" deploy/quickstart-k8s.yaml
# else
# sed -i "s/perconalab\/everest.*/percona\/percona-everest:$VERSION/g" deploy/quickstart-k8s.yaml
# sed -i "s/percona\/percona-everest.*/percona\/percona-everest:$VERSION/g" deploy/quickstart-k8s.yaml
# fi
#
# # Update the operator go module to reference the version tag
# go get github.com/percona/everest-operator@$GH_TAG
# go mod tidy
#
# # Change version in Makefile
# sed -i "s/RELEASE_VERSION ?=.*/RELEASE_VERSION ?= v$VERSION/g" Makefile
#
# # if there is something to commit, commit it and add the tag
# if [[ -n $(git status --porcelain) ]]; then
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# # commit and push the updated files
# git commit -a -m "update version tag"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
# fi
#
# - name: Everest UI - setup pnpm
# uses: pnpm/action-setup@v3
# with:
# version: 8
#
# - name: Everest UI - run with Node 20
# uses: actions/setup-node@v4
# with:
# node-version: 20.x
# cache: 'pnpm'
# cache-dependency-path: ui/pnpm-lock.yaml
#
# - name: Everest UI - build
# run: |
# cd ui
# pnpm install
# EVEREST_OUT_DIR=${GITHUB_WORKSPACE}/public/dist/ pnpm build
#
# - name: Everest - build binary
# run: |
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build
#
# - name: Everest - setup docker build metadata
# uses: docker/metadata-action@v5
# id: everest_meta
# with:
# images: |
# percona/percona-everest,enable=${{ env.IS_RC == 0 }}
# perconalab/everest
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=latest
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
# - name: Everest - build and push Everest image
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: ${{ steps.everest_meta.outputs.tags }}
#
# - name: Run Trivy vulnerability scanner
# uses: aquasecurity/[email protected]
# with:
# image-ref: ${{ steps.everest_meta.outputs.tags }}
# format: 'table'
# exit-code: '1'
# severity: 'CRITICAL,HIGH'
#
# - name: CLI - build binaries
# run: |
# make release-cli
#
# - name: CLI - create release with binaries
# uses: softprops/action-gh-release@v1
# with:
# draft: true
# files: |
# dist/*
# env:
# GITHUB_TOKEN: ${{ github.token }}
#
#