name: ci

on:
  push:
    branches:
      - master
      - releases/v*
    paths-ignore:
      - '**.md'
  pull_request:
    branches:
      - master
      - releases/v*
    paths-ignore:
      - '**.md'

jobs:
  main:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        buildx-version:
          - latest
          - v0.2.2
          - ""
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Set up Docker Buildx
        id: buildx
        uses: ./
        with:
          version: ${{ matrix.buildx-version }}
      -
        name: Builder instance name
        run: echo ${{ steps.buildx.outputs.name }}
      -
        name: Available platforms
        run: echo ${{ steps.buildx.outputs.platforms }}
      -
        name: Dump context
        uses: crazy-max/ghaction-dump-context@v1

  multi:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Set up Docker Buildx 1
        id: buildx1
        uses: ./
      -
        name: Builder 1 instance name
        run: echo ${{ steps.buildx1.outputs.name }}
      -
        name: Set up Docker Buildx 2
        id: buildx2
        uses: ./
      -
        name: Builder 2 instance name
        run: echo ${{ steps.buildx2.outputs.name }}

  install:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Set up Docker Buildx
        uses: ./
        with:
          install: true
      -
        name: Check cmd
        run: |
          docker build --help

  use:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        use:
          - true
          - false
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Set up Docker Buildx
        uses: ./
        with:
          use: ${{ matrix.use }}
      -
        name: List builder instances
        run: docker buildx ls

  driver:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        driver-opt:
          - image=moby/buildkit:latest
          - image=moby/buildkit:master
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2.3.1
      -
        name: Set up Docker Buildx
        uses: ./
        with:
          driver: docker-container
          driver-opt: ${{ matrix.driver-opt }}

#  with-qemu:
#    runs-on: ubuntu-latest
#    strategy:
#      fail-fast: false
#      matrix:
#        buildx-version:
#          - latest
#          - v0.2.2
#          - ""
#        qemu-platforms:
#          - all
#          - arm64,riscv64,arm
#    steps:
#      -
#        name: Checkout
#        uses: actions/checkout@v2.3.1
#      -
#        name: Set up QEMU
#        uses: docker/setup-qemu-action@master
#        with:
#          platforms: ${{ matrix.qemu-platforms }}
#      -
#        name: Set up Docker Buildx
#        id: buildx
#        uses: ./
#        with:
#          version: ${{ matrix.buildx-version }}
#      -
#        name: Available platforms
#        run: echo ${{ steps.buildx.outputs.platforms }}
#      -
#        name: Builder instance name
#        run: echo ${{ steps.buildx.outputs.name }}