Browse Source

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

ci: fix unified release workflow dispatch matrix filtering
pull/8294/head
Chris Lu 16 hours ago
committed by GitHub
parent
commit
2d97685390
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 30
      .github/workflows/container_release_unified.yml

30
.github/workflows/container_release_unified.yml

@ -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: |
github.event_name != 'pull_request' &&
(
github.event_name != 'workflow_dispatch' ||
github.event.inputs.variant == 'all' ||
github.event.inputs.variant == matrix.variant
)
if: github.event_name != 'pull_request'
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() {

Loading…
Cancel
Save