ci: fix container_release_unified manual dispatch and workflow parsing (#8293)

ci: fix unified release workflow dispatch matrix filtering
This commit is contained in:
Chris Lu
2026-02-10 13:15:52 -08:00
committed by GitHub
parent 1b2f719d7c
commit 2d97685390

View File

@@ -41,10 +41,6 @@ concurrency:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: |
github.event_name != 'workflow_dispatch' ||
github.event.inputs.variant == 'all' ||
github.event.inputs.variant == matrix.variant
strategy: strategy:
# Build sequentially to avoid rate limits # Build sequentially to avoid rate limits
max-parallel: 2 max-parallel: 2
@@ -87,9 +83,11 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Free Disk Space - name: Free Disk Space
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
run: | run: |
echo "Available disk space before cleanup:" echo "Available disk space before cleanup:"
df -h df -h
@@ -103,6 +101,7 @@ jobs:
df -h df -h
- name: Docker meta - name: Docker meta
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
id: docker_meta id: docker_meta
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
with: with:
@@ -117,10 +116,11 @@ jobs:
org.opencontainers.image.vendor=Chris Lu org.opencontainers.image.vendor=Chris Lu
- name: Set up QEMU - name: Set up QEMU
if: contains(matrix.platforms, 'arm') if: (github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant) && contains(matrix.platforms, 'arm')
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
- name: Create BuildKit config - name: Create BuildKit config
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
run: | run: |
cat > /tmp/buildkitd.toml <<EOF cat > /tmp/buildkitd.toml <<EOF
[registry."docker.io"] [registry."docker.io"]
@@ -128,19 +128,20 @@ jobs:
EOF EOF
- name: Set up Docker Buildx - name: Set up Docker Buildx
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
with: with:
buildkitd-config: /tmp/buildkitd.toml buildkitd-config: /tmp/buildkitd.toml
- name: Login to Docker Hub - name: Login to Docker Hub
if: github.event_name != 'pull_request' if: (github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant) && github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GHCR - name: Login to GHCR
if: github.event_name != 'pull_request' if: (github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant) && github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
@@ -148,6 +149,7 @@ jobs:
password: ${{ secrets.GHCR_TOKEN }} password: ${{ secrets.GHCR_TOKEN }}
- name: Build and push ${{ matrix.variant }} - name: Build and push ${{ matrix.variant }}
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
env: env:
DOCKER_BUILDKIT: 1 DOCKER_BUILDKIT: 1
@@ -169,7 +171,7 @@ jobs:
${{ matrix.variant == 'rocksdb' && format('ROCKSDB_VERSION={0}', github.event.inputs.rocksdb_version || 'v10.10.1') || '' }} ${{ matrix.variant == 'rocksdb' && format('ROCKSDB_VERSION={0}', github.event.inputs.rocksdb_version || 'v10.10.1') || '' }}
- name: Clean up build artifacts - name: Clean up build artifacts
if: always() if: always() && (github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant)
run: | run: |
sudo docker system prune -f sudo docker system prune -f
sudo rm -rf /tmp/go-build* sudo rm -rf /tmp/go-build*
@@ -177,13 +179,7 @@ jobs:
copy-to-dockerhub: copy-to-dockerhub:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [build] needs: [build]
if: | if: github.event_name != 'pull_request'
github.event_name != 'pull_request' &&
(
github.event_name != 'workflow_dispatch' ||
github.event.inputs.variant == 'all' ||
github.event.inputs.variant == matrix.variant
)
strategy: strategy:
matrix: matrix:
variant: [normal, large_disk, full, large_disk_full, rocksdb] variant: [normal, large_disk, full, large_disk_full, rocksdb]
@@ -201,12 +197,14 @@ jobs:
steps: steps:
- name: Login to Docker Hub - name: Login to Docker Hub
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GHCR - name: Login to GHCR
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
@@ -214,6 +212,7 @@ jobs:
password: ${{ secrets.GHCR_TOKEN }} password: ${{ secrets.GHCR_TOKEN }}
- name: Install crane - name: Install crane
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
run: | run: |
cd $(mktemp -d) cd $(mktemp -d)
curl -sL "https://github.com/google/go-containerregistry/releases/latest/download/go-containerregistry_Linux_x86_64.tar.gz" | tar xz curl -sL "https://github.com/google/go-containerregistry/releases/latest/download/go-containerregistry_Linux_x86_64.tar.gz" | tar xz
@@ -221,6 +220,7 @@ jobs:
crane version crane version
- name: Copy ${{ matrix.variant }} from GHCR to Docker Hub - name: Copy ${{ matrix.variant }} from GHCR to Docker Hub
if: github.event_name != 'workflow_dispatch' || github.event.inputs.variant == 'all' || github.event.inputs.variant == matrix.variant
run: | run: |
# Function to retry with exponential backoff # Function to retry with exponential backoff
retry_with_backoff() { retry_with_backoff() {