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. (#13359)
* 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:
parent
8d9fb91b20
commit
70f19efb7d
4 changed files with 96 additions and 4 deletions
5
.github/scripts/gen-docker-tags.py
vendored
5
.github/scripts/gen-docker-tags.py
vendored
|
@ -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])])
|
||||
|
|
80
.github/workflows/docker.yml
vendored
80
.github/workflows/docker.yml
vendored
|
@ -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'
|
||||
}}
|
||||
|
|
|
@ -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
9
packaging/docker/gen-cflags.sh
Executable 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
|
Loading…
Add table
Reference in a new issue