ci: point the build at the paths and images that actually exist (#2)

The repo was renamed to s3-csi in its workflows but not in its tree, so every
job failed on something that was never there:

  build       lstat cmd/s3-csi: no such file or directory   (it is cmd/s3-csi-driver)
  helm        stat deploy/helm/s3-csi/Chart.yaml: not found (it is seaweedfs-csi-driver)

The Dockerfile paths now name the real directory, and the chart is renamed to
s3-csi — which the workflows already expected and which removes the last
seaweedfs name from the chart.

The integration test was worse than broken: it pulled chrislusf/s3:latest, the
UPSTREAM protobuf filer, to exercise a driver whose entire purpose is that it
speaks ZAP instead. That test could not have passed, and if it ever had it would
have been testing the wrong thing. It now runs against ghcr.io/hanzoai/s3.

release.yaml and versioned_release.yaml carried the same Docker Hub login as
chrislusf that dev.yaml did; all three now publish to ghcr.io/hanzoai.

Co-authored-by: hanzo-dev <[email protected]>
This commit is contained in:
2026-07-27 17:37:09 -07:00
committed by GitHub
co-authored by hanzo-dev
parent a7f2441456
commit 4966ea903e
19 changed files with 30 additions and 22 deletions
+1 -1
View File
@@ -88,7 +88,7 @@ jobs:
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
file: ./cmd/s3-csi/Dockerfile
file: ./cmd/s3-csi-driver/Dockerfile
platforms: linux/amd64, linux/arm, linux/arm64, linux/386
tags: ${{ steps.docker_meta_csi.outputs.tags }}
labels: ${{ steps.docker_meta_csi.outputs.labels }}
+7 -7
View File
@@ -52,7 +52,7 @@ jobs:
- name: Build and load Docker images
run: |
# Build CSI driver image
docker build -t s3-csi:test -f cmd/s3-csi/Dockerfile .
docker build -t s3-csi:test -f cmd/s3-csi-driver/Dockerfile .
kind load docker-image s3-csi:test --name csi-test
# Build mount service image
@@ -65,11 +65,11 @@ jobs:
# the rollout. Retry the docker pull a few times to ride through
# transient registry hiccups.
for i in 1 2 3; do
docker pull chrislusf/s3:latest && break
docker pull ghcr.io/hanzoai/s3:latest && break
echo "docker pull attempt $i failed, retrying..."
sleep 10
done
kind load docker-image chrislusf/s3:latest --name csi-test
kind load docker-image ghcr.io/hanzoai/s3:latest --name csi-test
- name: Deploy S3
run: |
@@ -117,7 +117,7 @@ jobs:
spec:
containers:
- name: s3
image: chrislusf/s3:latest
image: ghcr.io/hanzoai/s3:latest
# Use the image preloaded into kind by the workflow so we
# do not re-pull from Docker Hub (anonymous rate limits
# have caused ImagePullBackOff in CI).
@@ -170,13 +170,13 @@ jobs:
run: |
# Deploy CSI driver with test images and correct filer address.
# The s3-csi.yaml is rendered from the helm chart and pins
# the released image tag (e.g. chrislusf/s3-csi:v1.4.5),
# so we rewrite *any* chrislusf/s3-csi:* and
# the released image tag (e.g. ghcr.io/hanzoai/s3-csi:v1.4.5),
# so we rewrite *any* ghcr.io/hanzoai/s3-csi:* and
# chrislusf/s3-mount:* reference to the test images we
# kind-loaded in the previous step. This guarantees CI is exercising
# the code in this PR, not whatever the helm chart happens to pin.
cat deploy/kubernetes/s3-csi.yaml | \
sed -E 's|chrislusf/s3-csi:[^[:space:]]+|s3-csi:test|g' | \
sed -E 's|ghcr.io/hanzoai/s3-csi:[^[:space:]]+|s3-csi:test|g' | \
sed -E 's|chrislusf/s3-mount:[^[:space:]]+|s3-mount:test|g' | \
sed 's|SEAWEEDFS_FILER:8888|s3.s3.svc.cluster.local:8888|g' | \
kubectl apply -f -
+11 -7
View File
@@ -11,6 +11,10 @@ on:
# Allow trigger for external PRs
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
build:
runs-on: ubuntu-latest
@@ -23,7 +27,7 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
chrislusf/s3-csi
ghcr.io/hanzoai/s3-csi
tags: |
type=raw,value=latest
flavor: |
@@ -38,7 +42,7 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
chrislusf/s3-mount
ghcr.io/hanzoai/s3-mount
tags: |
type=raw,value=latest
flavor: |
@@ -67,13 +71,13 @@ jobs:
with:
buildkitd-flags: "--debug"
- name: Login to DockerHub
- name: Login to GHCR
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: docker/login-action@v2
with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
username: chrislusf
password: ${{ secrets.DOCKERHUB_TOKEN }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build csi-driver image
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
@@ -81,7 +85,7 @@ jobs:
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
file: ./cmd/s3-csi/Dockerfile
file: ./cmd/s3-csi-driver/Dockerfile
platforms: linux/amd64, linux/arm, linux/arm64, linux/386
tags: ${{ steps.docker_meta_csi.outputs.tags }}
labels: ${{ steps.docker_meta_csi.outputs.labels }}
+11 -7
View File
@@ -11,6 +11,10 @@ on:
# Allow trigger for external PRs
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
build:
runs-on: ubuntu-latest
@@ -23,7 +27,7 @@ jobs:
uses: docker/metadata-action@v5
with:
images: |
chrislusf/s3-csi
ghcr.io/hanzoai/s3-csi
tags: |
type=ref,event=tag
flavor: |
@@ -38,7 +42,7 @@ jobs:
uses: docker/metadata-action@v5
with:
images: |
chrislusf/s3-mount
ghcr.io/hanzoai/s3-mount
tags: |
type=ref,event=tag
flavor: |
@@ -67,14 +71,14 @@ jobs:
with:
buildkitd-flags: "--debug"
- name: Login to DockerHub
- name: Login to GHCR
# Skip for PRs where secrets are not available
if: ${{ github.event_name != 'pull_request' }}
uses: docker/login-action@v3
with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
username: chrislusf
password: ${{ secrets.DOCKERHUB_TOKEN }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build csi-driver image
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
@@ -82,7 +86,7 @@ jobs:
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
file: ./cmd/s3-csi/Dockerfile
file: ./cmd/s3-csi-driver/Dockerfile
platforms: linux/amd64, linux/arm, linux/arm64, linux/386
tags: ${{ steps.docker_meta_csi.outputs.tags }}
labels: ${{ steps.docker_meta_csi.outputs.labels }}