plugin-barman-cloud/.github/workflows/ci.yml
Marco Nenciarini 962472bde8
ci: forensic probe of --source . git snapshot under task ci load
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-06-05 18:54:25 +02:00

87 lines
4.1 KiB
YAML

name: CI
on:
pull_request:
workflow_dispatch:
permissions: read-all
jobs:
ci:
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
steps:
- name: Cleanup Disk
uses: jlumbroso/free-disk-space@v1.3.1
with:
android: true
dotnet: true
haskell: true
tool-cache: true
large-packages: false
swap-storage: false
- name: Cleanup docker cache
run: |
echo "-------------Disk info before cleanup----------------"
df -h
echo "-----------------------------------------------------"
docker system prune -a -f
echo "-------------Disk info after cleanup----------------"
df -h
echo "-----------------------------------------------------"
- name: Checkout
uses: actions/checkout@v6
# We need the full history for the commitlint task
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Install QEMU static binaries
uses: docker/setup-qemu-action@v4
- name: Install Task
uses: arduino/setup-task@v2
- name: Install Dagger
env:
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
DAGGER_VERSION: 0.21.4
run: |
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
- name: Run CI task
run: |
set +e
echo "########## BASELINE snapshot (pre-load) ##########"
echo "[host] $(df -h / | tail -1)"
echo "[host] gitdu=$(du -sh .git 2>/dev/null|cut -f1) cglayers=$(ls .git/objects/info/commit-graphs/ 2>/dev/null|wc -l)"
GITHUB_REF= timeout 220 dagger core container from --address=alpine/git \
with-mounted-directory --path=/src --source=. \
with-workdir --path=/src \
with-exec --use-entrypoint=false --args=sh,-c,'printf BASE_mb=; git merge-base origin/main HEAD 2>/dev/null || echo NONE; echo BASE_count=$(git rev-list --count HEAD 2>/dev/null); echo BASE_packls:; ls -la .git/objects/pack 2>/dev/null; echo BASE_cglayers=$(ls .git/objects/info/commit-graphs 2>/dev/null|wc -l)' \
stdout 2>/dev/null || echo "BASE_DAGGER_ERROR"
echo "########## LAUNCHING FULL task ci (parallel load) ##########"
( task ci > /tmp/taskci.log 2>&1 ) & TASKCI=$!
( for t in $(seq 1 90); do echo "[host t=$t $(date -u +%H:%M:%S)] $(df -h / | tail -1) | gitdu=$(du -sh .git 2>/dev/null|cut -f1) packb=$(du -cb .git/objects/pack/*.pack 2>/dev/null|tail -1|cut -f1)"; sleep 4; done ) & HOSTLOOP=$!
( for t in $(seq 1 20); do echo "===CTRPROBE t=$t $(date -u +%H:%M:%S)==="; GITHUB_REF= timeout 90 dagger core container from --address=alpine/git with-mounted-directory --path=/src --source=. with-workdir --path=/src with-exec --use-entrypoint=false --args=sh,-c,'printf CTR_mb=; git merge-base origin/main HEAD 2>/dev/null || echo NONE; echo CTR_count=$(git rev-list --count HEAD 2>/dev/null); echo CTR_packls:; ls -la .git/objects/pack 2>/dev/null; echo CTR_cglayers=$(ls .git/objects/info/commit-graphs 2>/dev/null|wc -l)' stdout 2>/dev/null || echo CTR_DAGGER_ERROR; sleep 7; done ) & CTRLOOP=$!
sleep 290
kill $HOSTLOOP $CTRLOOP $TASKCI 2>/dev/null
echo "########## commitlint result from task ci ##########"
grep -iE "commitlint|merge-base|Failed to run task" /tmp/taskci.log 2>/dev/null | sed -E 's/\x1b\[[0-9;]*m//g' | tail -30
exit 1
- name: Write manifest
run: |
task manifest
- name: Publish images
if: |
github.event_name == 'workflow_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
env:
REGISTRY_USER: ${{ github.actor }}
REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
run: |
task publish
- name: Attach manifest to workflow run
uses: actions/upload-artifact@v7
with:
name: manifest.yaml
path: ./manifest.yaml