chore: fix package build for conan2 (#741) #76
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: Debug Builds | |
on: | |
push: | |
branches: [ develop, master, release/** ] | |
env: | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
CONAN_NON_INTERACTIVE: 1 | |
CONAN_REVISIONS_ENABLED: 1 | |
jobs: | |
code-coverage: | |
runs-on: ubuntu-latest | |
outputs: | |
version_number: ${{ steps.build.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{github.workspace}}/build | |
- name: Get Conan | |
id: conan | |
uses: turtlebrowser/get-conan@c171f295f3f507360ee018736a6608731aa2109d #v1.2 | |
- name: Setup Conan Cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/p/ | |
key: conan-${{ runner.os }}-${{ hashFiles('conanfile.py', '*/conanfile.py') }} | |
restore-keys: conan-${{ runner.os }}- | |
- name: linux package install | |
run: | | |
sudo apt-get update | |
sudo apt-get install --yes --no-install-recommends jq lcov | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{github.workspace}}/build | |
run: PKG_CONFIG_PATH=${{github.workspace}}/local/lib/pkgconfig cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=./cmake/conan_provider.cmake -DCODE_COVERAGE=ON | |
- name: Get VERSION | |
id: build | |
run: echo "VERSION=`cat ${{github.workspace}}/build/VERSION`" >> $GITHUB_ENV | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
shell: bash | |
run: cmake --build . --config Debug -- -j 4 | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
shell: bash | |
run: sudo ctest | |
- name: Build Coverage | |
working-directory: ${{github.workspace}}/build | |
shell: bash | |
run: sudo cmake --build . --target coverage -- -j 4 | |
- name: Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
files: build/coverage.info | |
name: pktvisor | |
verbose: true | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{github.workspace}}/build | |
- name: Setup Conan Cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/p/ | |
key: conan-${{ runner.os }}-${{ hashFiles('conanfile.py', '*/conanfile.py') }} | |
restore-keys: conan-${{ runner.os }}- | |
- name: Build pktvisord + push symbol to backtrace.io | |
uses: ./.github/actions/build-cpp | |
with: | |
context: "." | |
build_type: "Debug" | |
asan: "ON" | |
symbol_url: ${{secrets.SYMBOL_URL}} | |
bugsplat_key: ${{secrets.BUGSPLAT_KEY}} | |
bugsplat_symbol_url: ${{secrets.BUGSPLAT_SYMBOL_URL}} | |
bugsplat: "true" | |
file: "./Dockerfile" | |
- name: Build pktvisor-cli | |
uses: ./.github/actions/build-go | |
with: | |
context: "." | |
file: "./Dockerfile" | |
- name: Debug artifacts | |
run: ls -lha . | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pktvisor-artifacts | |
path: ./ | |
retention-days: 1 | |
package: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download to workspace | |
uses: actions/download-artifact@v4 | |
with: | |
name: pktvisor-artifacts | |
- name: Get branch name | |
shell: bash | |
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV | |
- name: Debug branch name | |
run: echo ${{ env.BRANCH_NAME }} | |
- name: Get VERSION | |
run: echo "VERSION=`cat ${{github.workspace}}/VERSION`" >> $GITHUB_ENV | |
- name: Debug version | |
run: echo ${{ env.VERSION }} | |
- name: Generate ref tag (master) | |
if: ${{ env.BRANCH_NAME == 'master' }} | |
run: echo "REF_TAG=latest-debug" >> $GITHUB_ENV | |
- name: Generate ref tag (develop) | |
if: ${{ env.BRANCH_NAME == 'develop' }} | |
run: echo "REF_TAG=latest-develop-debug" >> $GITHUB_ENV | |
- name: Generate ref tag (release candidate) | |
if: ${{ env.BRANCH_NAME == 'release' }} | |
run: echo "REF_TAG=latest-rc-debug" >> $GITHUB_ENV | |
- name: Debug ref tag | |
run: echo ${{ env.REF_TAG }} | |
- name: Replace token | |
run: | | |
sed -i -e "s/CP_TOKEN/${{ secrets.CRASHPAD_TOKEN }}/g" docker/run.sh | |
- name: Replace escape url | |
run: | | |
REPLACE=${{ secrets.BUGSPLAT_CP_URL }} | |
ESCAPED_REPLACE=$(printf '%s\n' "$REPLACE" | sed -e 's/[\/&]/\\&/g') | |
sed -i -e "s/CP_URL/$ESCAPED_REPLACE/g" docker/run.sh | |
- name: Login to Docker Hub | |
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 #v3.3.0 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build, push debug image + crashhandler | |
env: | |
IMAGE_NAME: netboxlabs/pktvisor | |
run: | | |
docker build . --file docker/Dockerfile.crashhandler --tag ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} | |
docker push -a ${{ env.IMAGE_NAME }} | |