0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-09 23:57:55 +00:00

Add additional Docker image build with debug info included. ()

* Add additional Docker image build with debug info included.

* Assorted fixes.

* Update packaging/docker/gen-cflags.sh

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
This commit is contained in:
Austin S. Hemmelgarn 2022-07-13 14:17:37 +03:00 committed by GitHub
parent 8d9fb91b20
commit 70f19efb7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 96 additions and 4 deletions
.github
packaging/docker

View file

@ -2,9 +2,10 @@
import sys
REPO = 'netdata/netdata'
version = sys.argv[1].split('.')
suffix = sys.argv[2]
REPO = f'netdata/netdata{suffix}'
MAJOR = ':'.join([REPO, version[0]])
MINOR = ':'.join([REPO, '.'.join(version[0:2])])

View file

@ -151,7 +151,7 @@ jobs:
id: release-tags
if: github.event.inputs.version != 'nightly'
run: |
echo "tags=netdata/netdata:latest,netdata/netdata:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }})" \
echo "tags=netdata/netdata:latest,netdata/netdata:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }} '')" \
>> "${GITHUB_ENV}"
- name: Determine which tags to use
id: nightly-tags
@ -218,3 +218,81 @@ jobs:
workflow: Agent Version PR
ref: refs/heads/master
inputs: '{"agent_version": "${{ needs.normalize-tag.outputs.tag }}"}'
docker-dbg-publish:
if: github.event_name == 'workflow_dispatch'
name: Docker Build and Publish (Debuging Image)
needs:
- docker-test
- normalize-tag
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Determine which tags to use
id: release-tags
if: github.event.inputs.version != 'nightly'
run: |
echo "tags=netdata/netdata-debug:latest,netdata/netdata-debug:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }} '-debug')" \
>> "${GITHUB_ENV}"
- name: Determine which tags to use
id: nightly-tags
if: github.event.inputs.version == 'nightly'
run: |
echo "tags=netdata/netdata-debug:latest,netdata/netdata-debug:edge" >> "${GITHUB_ENV}"
- name: Mark image as official
id: env
if: github.repository == 'netdata/netdata'
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
- name: Setup QEMU
id: qemu
uses: docker/setup-qemu-action@v2
- name: Setup Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Docker Hub Login
id: login
if: github.repository == 'netdata/netdata'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Docker Build
id: build
uses: docker/build-push-action@v3
with:
platforms: linux/amd64,linux/i386,linux/arm/v7,linux/arm64,linux/ppc64le
push: ${{ github.repository == 'netdata/netdata' }}
tags: ${{ env.tags }}
build-args: |
OFFICIAL_IMAGE=${{ env.OFFICIAL_IMAGE }}
DEBUG_BUILD=1
- name: Failure Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: 'danger'
SLACK_FOOTER: ''
SLACK_ICON_EMOJI: ':github-actions:'
SLACK_TITLE: 'Docker Debug Build failed:'
SLACK_USERNAME: 'GitHub Actions'
SLACK_MESSAGE: |-
${{ github.repository }}: Failed to build or publish Docker debug images.
CHeckout: ${{ steps.checkout.outcome }}
Generate release tags: ${{ steps.release-tags.outcome }}
Generate nightly tags: ${{ steps.nightly-tags.outcome }}
Setup environment: ${{ steps.env.outcome }}
Setup QEMU: ${{ steps.qemu.outcome }}
Setup buildx: ${{ steps.buildx.outcome }}
Authenticate against DockerHub: ${{ steps.login.outcome }}
Build and publish images: ${{ steps.build.outcome }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
if: >-
${{
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
&& github.repository == 'netdata/netdata'
}}

View file

@ -18,6 +18,10 @@ ARG EXTRA_INSTALL_OPTS
ENV EXTRA_INSTALL_OPTS=$EXTRA_INSTALL_OPTS
ARG DEBUG_BUILD
ENV DEBUG_BUILD=$DEBUG_BUILD
# Copy source
COPY . /opt/netdata.git
WORKDIR /opt/netdata.git
@ -26,7 +30,7 @@ WORKDIR /opt/netdata.git
RUN chmod +x netdata-installer.sh && \
cp -rp /deps/* /usr/local/ && \
/bin/echo -e "INSTALL_TYPE='oci'\nPREBUILT_ARCH='$(uname -m)'" > ./system/.install-type && \
CFLAGS=${CFLAGS:-"-O2 -pipe"} ./netdata-installer.sh --dont-wait --dont-start-it --use-system-protobuf \
CFLAGS="$(packaging/docker/gen-cflags.sh)" ./netdata-installer.sh --dont-wait --dont-start-it --use-system-protobuf \
${EXTRA_INSTALL_OPTS} --one-time-build "$([ "$RELEASE_CHANNEL" = stable ] && echo --stable-channel)"
# files to one directory

9
packaging/docker/gen-cflags.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/sh
if [ -n "${CFLAGS}" ]; then
echo "${CFLAGS}"
elif [ -n "${DEBUG_BUILD}" ]; then
echo "-Og -ggdb -pipe"
else
echo "-O2 -pipe"
fi