# This workflow performs a quick Docker build check on PRs and pushes to master. # It builds the Docker image and runs a basic smoke test to ensure the image works. # This is a lightweight check - for full multi-platform builds and publishing, see docker-image.yml name: Docker Check on: workflow_dispatch: pull_request: paths-ignore: - '**/*.md' push: branches: - 'master' concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }} cancel-in-progress: true jobs: lint: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v6 - uses: hadolint/hadolint-action@v3.3.0 with: dockerfile: Dockerfile failure-threshold: warning verbose: true format: tty build: if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest timeout-minutes: 10 env: IMAGE_NAME: ipfs/kubo WIP_IMAGE_TAG: wip defaults: run: shell: bash steps: - uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker image with BuildKit uses: docker/build-push-action@v6 with: context: . push: false load: true tags: ${{ env.IMAGE_NAME }}:${{ env.WIP_IMAGE_TAG }} cache-from: | type=gha type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=gha,mode=max - name: Test Docker image run: docker run --rm $IMAGE_NAME:$WIP_IMAGE_TAG --version