| name: Docker Official Image |
| |
| on: |
| push: |
| branches: [ master ] |
| paths: |
| - 'docker/**' |
| - '.github/workflows/docker.yml' |
| pull_request: |
| paths: |
| - 'docker/**' |
| - '.github/workflows/docker.yml' |
| workflow_dispatch: |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| bashbrew: |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 |
| with: |
| persist-credentials: false |
| |
| - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 |
| with: |
| go-version: stable |
| cache: false |
| |
| - name: Install Bashbrew |
| run: | |
| set -eux |
| GOBIN="$PWD/docker/tmp/bin" go install github.com/docker-library/bashbrew/cmd/bashbrew@v0.1.14 |
| echo "$PWD/docker/tmp/bin" >> "$GITHUB_PATH" |
| |
| - name: Validate Bashbrew manifest |
| run: | |
| set -eux |
| mkdir -p docker/tmp/bashbrew-library |
| (cd docker && GIT_COMMIT="$(git rev-parse HEAD)" ./generate-stackbrew-library.sh) > docker/tmp/bashbrew-library/thrift |
| BASHBREW_LIBRARY="$PWD/docker/tmp/bashbrew-library" bashbrew cat thrift >/dev/null |
| BASHBREW_LIBRARY="$PWD/docker/tmp/bashbrew-library" bashbrew list --build-order --uniq thrift >/dev/null |
| |
| docker: |
| name: Docker (${{ matrix.platform }}) |
| runs-on: ${{ matrix.runner }} |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - platform: linux/amd64 |
| runner: ubuntu-22.04 |
| - platform: linux/arm64 |
| runner: ubuntu-24.04-arm |
| steps: |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 |
| with: |
| persist-credentials: false |
| |
| - name: Verify Docker Buildx |
| run: docker buildx version |
| |
| - name: Build and test Docker images |
| timeout-minutes: 90 |
| run: docker/test.sh |