Add changes on production environment #201
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Deploy to Production | |
on: | |
workflow_dispatch: | |
inputs: | |
pktvisor_tag: | |
description: 'pktvisor agent docker tag to package' | |
required: true | |
pull_request: | |
branches: [ production ] | |
push: | |
branches: [ production ] | |
jobs: | |
prebuild: | |
runs-on: ubuntu-latest | |
outputs: | |
agent: ${{ steps.filter.outputs.agent }} | |
orb: ${{ steps.filter.outputs.orb }} | |
ui: ${{ steps.filter.outputs.ui }} | |
VERSION: ${{ env.VERSION }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
agent: | |
- 'agent/**' | |
- 'cmd/agent/**' | |
orb: | |
- 'fleet/**' | |
- 'cmd/fleet/**' | |
- 'policies/**' | |
- 'cmd/policies/**' | |
- 'sinks/**' | |
- 'cmd/sinks/**' | |
- 'sinker/**' | |
- 'cmd/sinker/**' | |
- 'maestro/**' | |
- 'cmd/maestro/**' | |
ui: | |
- 'ui/**' | |
- name: Set branch name | |
shell: bash | |
run: | | |
echo "BRANCH_NAME=production" >> $GITHUB_ENV | |
- name: Generate ref tag (production) | |
run: | | |
echo "REF_TAG=production" >> $GITHUB_ENV | |
- name: Append suffix on VERSION file for production build | |
run: | | |
echo "`cat ${{github.workspace}}/VERSION`-${{ env.REF_TAG }}" > VERSION | |
- name: Get VERSION | |
run: | | |
echo "VERSION=`cat ${{github.workspace}}/VERSION`" >> $GITHUB_ENV | |
- name: Debug VERSION | |
run: echo ${{ env.VERSION }} | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
test-agent: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
if: ${{ needs.prebuild.outputs.agent == 'true' }} | |
run: SERVICE=agent make test_service | |
test-fleet: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
run: | | |
if [ "${{ needs.prebuild.outputs.orb }}" == "true" ]; then | |
SERVICE=fleet make test_service | |
fi | |
test-policies: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
if: ${{ needs.prebuild.outputs.orb == 'true' }} | |
run: SERVICE=policies make test_service | |
test-sinks: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
if: ${{ needs.prebuild.outputs.orb == 'true' }} | |
run: SERVICE=sinks make test_service | |
test-sinker: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
if: ${{ needs.prebuild.outputs.orb == 'true' }} | |
run: SERVICE=sinker make test_service | |
test-maestro: | |
runs-on: ubuntu-latest | |
needs: prebuild | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.19 | |
- name: Go unit tests | |
run: | | |
if [ "${{ needs.prebuild.outputs.orb }}" == "true" ]; then | |
SERVICE=maestro make test_service | |
fi | |
package-agent: | |
# This is just for debug agent | |
needs: | |
- prebuild | |
- test-agent | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
- name: Replace crashpad and geo-db params | |
run: | | |
ESCAPED_REPLACE_LINE1_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-token\", \"${{ secrets.CRASHPAD_TOKEN }}\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE2_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-url\", \"${{ secrets.CRASHPAD_URL }}\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE3_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-path\", \"/usr/local/sbin/crashpad_handler\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE4_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-geo-city\", \"/geo-db/city.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE5_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-geo-asn\", \"/geo-db/asn.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE6_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-service-registry\", \"/iana/custom-iana.csv\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE1_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-token\", PKTVISOR_CP_TOKEN)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE2_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-url\", PKTVISOR_CP_URL)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE3_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-path\", PKTVISOR_CP_PATH)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE4_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-geo-city\", \"/geo-db/city.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE5_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-geo-asn\", \"/geo-db/asn.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE6_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-service-registry\", \"/iana/custom-iana.csv\")" | sed -e 's/[\/&]/\\&/g') | |
sed -i -e "s/$ESCAPED_REPLACE_LINE1_OLD/$ESCAPED_REPLACE_LINE1_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE2_OLD/$ESCAPED_REPLACE_LINE2_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE3_OLD/$ESCAPED_REPLACE_LINE3_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE4_OLD/$ESCAPED_REPLACE_LINE4_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE5_OLD/$ESCAPED_REPLACE_LINE5_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE6_OLD/$ESCAPED_REPLACE_LINE6_NEW/g" agent/backend/pktvisor/pktvisor.go | |
- name: Build orb-agent | |
shell: bash | |
env: | |
IMAGE_NAME: orbcommunity/orb-agent | |
run: | | |
if [ "${{ github.event.inputs.pktvisor_tag }}" == "" ]; then | |
make agent_production | |
make agent_debug_production | |
else | |
PKTVISOR_TAG=${{ github.event.inputs.pktvisor_tag }} make agent_production | |
PKTVISOR_TAG=${{ github.event.inputs.pktvisor_tag }} make agent_debug_production | |
fi | |
- name: Login to Docker Hub orbcommunity | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Push agent container orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-agent | |
- name: Login to Docker Hub orbcommunity | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push agent container orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-agent | |
package-fleet: | |
needs: | |
- prebuild | |
- test-fleet | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build service containers | |
run: SERVICE=fleet make build_docker | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push service containers orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-fleet | |
package-policies: | |
needs: | |
- prebuild | |
- test-policies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build service containers | |
run: SERVICE=policies make build_docker | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push service containers orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-policies | |
package-sinker: | |
needs: | |
- prebuild | |
- test-sinker | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build service containers | |
run: SERVICE=sinker make build_docker | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push service containers orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-sinker | |
package-sinks: | |
needs: | |
- prebuild | |
- test-sinks | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build service containers | |
run: SERVICE=sinks make build_docker | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push service containers orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-sinks | |
package-maestro: | |
needs: | |
- prebuild | |
- test-maestro | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build service containers | |
run: SERVICE=maestro make build_docker | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push service containers orbcommunity | |
if: github.event_name != 'pull_request' | |
run: docker push -a orbcommunity/orb-maestro | |
package-ui-dependencies: | |
needs: | |
- prebuild | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
yarn: | |
ui/package.json | |
- name: Build orb yarn image | |
if: ${{ steps.filter.outputs.yarn == 'true' }} | |
run: | | |
make ui-modules | |
- name: Login to Docker Hub orbcommunity | |
if: ${{ steps.filter.outputs.yarn == 'true' }} | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push ui image orbcommunity | |
if: ${{ steps.filter.outputs.yarn == 'true' }} | |
run: | | |
docker push -a orbcommunity/orb-ui-modules | |
package-ui: | |
needs: | |
- prebuild | |
- package-ui-dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Build orb-ui | |
env: | |
IMAGE_NAME: orbcommunity/orb-ui | |
run: | | |
make ui | |
- name: Commit orb-ui-live on orb-live repo production | |
run: | | |
git config --global user.email "${{secrets.GH_ORB_EMAIL}}" | |
git config --global user.name "${{secrets.GH_ORB_USER}}" | |
git config --global credential.helper cache | |
git clone -b main https://${{secrets.GH_ORB_USER}}:${{secrets.GH_ORB_ACCESS_TOKEN}}@${{ secrets.ORB_UI_REPO_URL }} | |
cd orb-live | |
rm -rf ui | |
git add . | |
git commit -m "[NS1 Orb Bot] clean ui folder" | |
cp -rf ../ui . | |
cp -rf ../VERSION . | |
echo "${{ steps.commit_hash.outputs.sha_short }}" > COMMIT_HASH | |
git add . | |
git commit -m "[NS1 Orb Bot] Update Orb Live UI for production" | |
git push origin main | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Push ui container orbcommunity | |
if: github.event_name != 'pull_request' | |
run: | | |
docker push -a orbcommunity/orb-ui | |
publish-orb-live-prd: | |
needs: | |
- prebuild | |
- package-fleet | |
- package-policies | |
- package-sinker | |
- package-sinks | |
- package-ui | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Debug values | |
run: | | |
echo ${{ needs.prebuild.outputs.VERSION }} | |
echo ${{ github.event.inputs.pktvisor_tag }} | |
env: | |
VERSION: ${{ needs.prebuild.env.VERSION }} | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
echo ${{ needs.prebuild.outputs.VERSION }} > VERSION | |
- name: Commit image tag on orb-live-manifest environment prod and ns1 environments | |
run: | | |
git config --global user.email "${{secrets.GH_ORB_EMAIL}}" | |
git config --global user.name "${{secrets.GH_ORB_USER}}" | |
git config --global credential.helper cache | |
git clone https://${{secrets.GH_ORB_USER}}:${{secrets.GH_ORB_ACCESS_TOKEN}}@${{ secrets.ORB_MANIFEST_REPO_URL }} | |
# Commit prd folder | |
cd orb-live-manifest/prod | |
mv values.yaml .template/values.old | |
cat .template/values.yaml.tpl >> values.yaml | |
sed -i -e "s/IMAGE_TAG/${{ needs.prebuild.outputs.VERSION }}-${{ steps.commit_hash.outputs.sha_short }}/g" values.yaml | |
git add values.yaml | |
git add .template/values.old | |
git commit -m "[NS1 Orb Bot] Update image tag on prod environment" | |
# Commit ns1 folder | |
cd ../ns1 | |
mv values.yaml .template/values.old | |
cat .template/values.yaml.tpl >> values.yaml | |
sed -i -e "s/IMAGE_TAG/${{ needs.prebuild.outputs.VERSION }}-${{ steps.commit_hash.outputs.sha_short }}/g" values.yaml | |
git add values.yaml | |
git add .template/values.old | |
git commit -m "[NS1 Orb Bot] Update image tag on ns1 environment" | |
#commit on repo | |
git push origin main | |
post-slack-message: | |
needs: publish-orb-live-prd | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Generating changelog and post it in slack channel | |
uses: ./.github/actions/slack-post | |
with: | |
branch: production | |
header: ":first_place_medal: :orb: *Deployed new features in orb.live* :orb: :rocket: :tada:" | |
github_repo: orb-community/orb | |
slack_channel: C041B9204CF # orb netdev slack channel ID | |
slack_api_token: ${{ secrets.SLACK_APP_TOKEN }} | |
buildx: | |
needs: publish-orb-live-prd | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set branch name | |
shell: bash | |
run: | | |
echo "BRANCH_NAME=production" >> $GITHUB_ENV | |
- name: Generate ref tag (production) | |
run: | | |
echo "REF_TAG=production" >> $GITHUB_ENV | |
- name: Get VERSION | |
run: | | |
echo "VERSION=`cat ${{github.workspace}}/VERSION`" >> $GITHUB_ENV | |
- name: Debug VERSION | |
run: echo ${{ env.VERSION }} | |
- name: Get short commit hash to a variable | |
id: commit_hash | |
run: | | |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: all | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to Docker Hub orbcommunity | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.ORB_DOCKERHUB_USERNAME }} | |
password: ${{ secrets.ORB_DOCKERHUB_TOKEN }} | |
- name: Replace crashpad and geo-db params | |
run: | | |
ESCAPED_REPLACE_LINE1_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-token\", \"${{ secrets.CRASHPAD_TOKEN }}\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE2_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-url\", \"${{ secrets.CRASHPAD_URL }}\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE3_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--cp-path\", \"/usr/local/sbin/crashpad_handler\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE4_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-geo-city\", \"/geo-db/city.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE5_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-geo-asn\", \"/geo-db/asn.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE6_NEW=$(printf '%s\n' "pvOptions = append(pvOptions, \"--default-service-registry\", \"/iana/custom-iana.csv\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE1_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-token\", PKTVISOR_CP_TOKEN)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE2_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-url\", PKTVISOR_CP_URL)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE3_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--cp-path\", PKTVISOR_CP_PATH)" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE4_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-geo-city\", \"/geo-db/city.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE5_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-geo-asn\", \"/geo-db/asn.mmdb\")" | sed -e 's/[\/&]/\\&/g') | |
ESCAPED_REPLACE_LINE6_OLD=$(printf '%s\n' "// pvOptions = append(pvOptions, \"--default-service-registry\", \"/iana/custom-iana.csv\")" | sed -e 's/[\/&]/\\&/g') | |
sed -i -e "s/$ESCAPED_REPLACE_LINE1_OLD/$ESCAPED_REPLACE_LINE1_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE2_OLD/$ESCAPED_REPLACE_LINE2_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE3_OLD/$ESCAPED_REPLACE_LINE3_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE4_OLD/$ESCAPED_REPLACE_LINE4_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE5_OLD/$ESCAPED_REPLACE_LINE5_NEW/g" agent/backend/pktvisor/pktvisor.go | |
sed -i -e "s/$ESCAPED_REPLACE_LINE6_OLD/$ESCAPED_REPLACE_LINE6_NEW/g" agent/backend/pktvisor/pktvisor.go | |
- name: Build + push - agent (multi-arch) | |
env: | |
IMAGE_NAME: orbcommunity/orb-agent:latest | |
IMAGE_NAME_2: orbcommunity/orb-agent:${{ env.VERSION }}-${{ steps.commit_hash.outputs.sha_short }} | |
uses: docker/build-push-action@v4 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
context: . | |
file: ./agent/docker/Dockerfile | |
platforms: linux/amd64, linux/arm64 | |
push: true | |
tags: ${{ env.IMAGE_NAME }} , ${{ env.IMAGE_NAME_2 }} | |
build-args: | | |
PKTVISOR_TAG=latest |