name: Build and Push Docker Images on: push: branches: [ main, ci ] paths: - '*/Dockerfile' - '.gitea/workflows/docker-build.yml' jobs: build: runs-on: ubuntu-latest container: git.hofer.link/philipp/ci-images:rust-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Login to Gitea Container Registry uses: docker/login-action@v2 with: registry: git.hofer.link username: ${{ secrets.GITEA_USERNAME }} password: ${{ secrets.GITEA_PASSWORD }} - name: Find changed Dockerfiles id: find-changes run: | # Get list of changed files CHANGED_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} || git diff --name-only HEAD~1 HEAD) # Find directories with changed Dockerfiles for file in $CHANGED_FILES; do if [[ $file == */Dockerfile ]]; then dir=$(echo $file | sed 's/\/Dockerfile$//') echo "Building image for directory: $dir" # Extract image name from directory IMAGE_NAME=$(basename $dir) echo "Building image: $IMAGE_NAME" # Build and push the Docker image docker build -t git.hofer.link/philipp/ci-images:$IMAGE_NAME $dir docker push git.hofer.link/philipp/ci-images:$IMAGE_NAME fi done