summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml53
1 files changed, 35 insertions, 18 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a50f9df5..16196342 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -88,10 +88,10 @@ jobs:
strategy:
matrix:
arch:
- - 'x86_64'
- - 'armv7l'
- - 'aarch64'
- - 'ppc64le'
+ - x86_64
+ - armv7l
+ - aarch64
+ - ppc64le
steps:
- name: Checkout
id: checkout
@@ -104,9 +104,26 @@ jobs:
if: github.event_name == 'workflow_dispatch' && github.event.inputs.type != 'nightly'
run: |
sed -i 's/^RELEASE_CHANNEL="nightly" *#/RELEASE_CHANNEL="stable" #/' netdata-installer.sh packaging/makeself/install-or-update.sh
+ - name: Get Cache Key
+ id: cache-key
+ run: .github/scripts/get-static-cache-key.sh ${{ matrix.arch }}
+ - name: Cache
+ id: cache
+ uses: actions/cache@v3
+ with:
+ path: artifacts/cache
+ key: ${{ steps.cache-key.outputs.key }}
- name: Build
- id: build
+ if: github.event_name != 'workflow_dispatch' # Don’t use retries on PRs.
run: .github/scripts/build-static.sh ${{ matrix.arch }}
+ - name: Build
+ if: github.event_name == 'workflow_dispatch'
+ id: build
+ uses: nick-fields/retry@v2
+ with:
+ timeout_minutes: 180
+ retries: 3
+ command: .github/scripts/build-static.sh ${{ matrix.arch }}
- name: Store
id: store
uses: actions/upload-artifact@v3
@@ -210,10 +227,10 @@ jobs:
uses: actions/checkout@v3
- name: Setup Buildx
id: buildx
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Build test environment
id: build1
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here.
with:
push: false
@@ -226,12 +243,12 @@ jobs:
outputs: type=oci,dest=/tmp/image.tar
tags: test:${{ matrix.artifact_key }}
- name: Retry delay
- if: ${{ steps.build1.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' }}
run: sleep "${RETRY_DELAY}"
- name: Build test environment (attempt 2)
- if: ${{ steps.build1.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' }}
id: build2
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here.
with:
push: false
@@ -244,12 +261,12 @@ jobs:
outputs: type=oci,dest=/tmp/image.tar
tags: test:${{ matrix.artifact_key }}
- name: Retry delay
- if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }}
run: sleep "${RETRY_DELAY}"
- name: Build test environment (attempt 3)
- if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }}
id: build3
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
with:
push: false
load: false
@@ -321,23 +338,23 @@ jobs:
id: build-basic
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c 'autoreconf -ivf && ./configure && make -j2'
+ /bin/sh -c 'autoreconf -ivf && ./configure --disable-dependency-tracking && make -j2'
- name: netdata-installer on ${{ matrix.distro }}, disable cloud
id: build-no-cloud
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud'
+ /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud --one-time-build'
- name: netdata-installer on ${{ matrix.distro }}, require cloud
id: build-cloud
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
+ /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build'
- name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C
id: build-no-jsonc
if: matrix.jsonc_removal != ''
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
+ /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build'
- name: Failure Notification
uses: rtCamp/action-slack-notify@v2
env:
@@ -627,7 +644,7 @@ jobs:
export_default_credentials: true
- name: Upload Artifacts
id: upload
- uses: google-github-actions/upload-cloud-storage@v0.9.0
+ uses: google-github-actions/upload-cloud-storage@v0.10.2
with:
destination: ${{ secrets.GCP_NIGHTLY_STORAGE_BUCKET }}
gzip: false