name: Docker # https://www.docker.com/blog/first-docker-github-action-is-here # https://github.com/docker/build-push-action # see: https://help.github.com/en/actions/reference/events-that-trigger-workflows on: # Trigger the workflow on push or pull request, but only for the master branch push: branches: [master, "release/*"] # include release branches like release/1.0.x pull_request: branches: [master, "release/*"] paths: - "dockers/**" - "!dockers/README.md" - "requirements/*" - "requirements.txt" - "environment.yml" - ".github/workflows/*docker*.yml" - ".github/workflows/events-nightly.yml" - "setup.py" concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} cancel-in-progress: ${{ ! (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/')) }} jobs: build-PL: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: # the config used in '.azure-pipelines/gpu-tests.yml' since the Dockerfile uses the cuda image python_version: ["3.9"] pytorch_version: ["1.10", "1.11"] steps: - name: Checkout uses: actions/checkout@v2 - name: Build PL Docker # publish master/release uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} PYTORCH_VERSION=${{ matrix.pytorch_version }} file: dockers/release/Dockerfile push: false timeout-minutes: 50 build-XLA: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: # the config used in '.circleci/config.yml`' python_version: ["3.7"] xla_version: ["1.8"] steps: - name: Checkout uses: actions/checkout@v2 - name: Build XLA Docker # publish master/release uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} XLA_VERSION=${{ matrix.xla_version }} file: dockers/base-xla/Dockerfile push: false timeout-minutes: 60 build-CUDA: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: # the config used in '.azure-pipelines/gpu-tests.yml' - {python_version: "3.7", pytorch_version: "1.8", cuda_version: "10.2", ubuntu_version: "18.04"} - {python_version: "3.7", pytorch_version: "1.10", cuda_version: "11.1", ubuntu_version: "20.04"} - {python_version: "3.7", pytorch_version: "1.11", cuda_version: "11.3.1", ubuntu_version: "20.04"} # latest (used in Tutorials) - {python_version: "3.8", pytorch_version: "1.8", cuda_version: "11.1", ubuntu_version: "20.04"} - {python_version: "3.8", pytorch_version: "1.9", cuda_version: "11.1", ubuntu_version: "20.04"} - {python_version: "3.9", pytorch_version: "1.10", cuda_version: "11.1", ubuntu_version: "20.04"} - {python_version: "3.9", pytorch_version: "1.11", cuda_version: "11.3.1", ubuntu_version: "20.04"} steps: - name: Checkout uses: actions/checkout@v2 - name: Build CUDA Docker # publish master/release uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} PYTORCH_VERSION=${{ matrix.pytorch_version }} CUDA_VERSION=${{ matrix.cuda_version }} UBUNTU_VERSION=${{ matrix.ubuntu_version }} file: dockers/base-cuda/Dockerfile push: false timeout-minutes: 95 build-Conda: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: # see: https://pytorch.org/get-started/previous-versions/ - {python_version: "3.8", pytorch_version: "1.8", cuda_version: "11.1"} - {python_version: "3.8", pytorch_version: "1.9", cuda_version: "11.1"} - {python_version: "3.8", pytorch_version: "1.10", cuda_version: "11.1"} - {python_version: "3.9", pytorch_version: "1.11", cuda_version: "11.3.1"} steps: - name: Checkout uses: actions/checkout@v2 - name: Build Conda Docker # publish master/release uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} PYTORCH_VERSION=${{ matrix.pytorch_version }} CUDA_VERSION=${{ matrix.cuda_version }} file: dockers/base-conda/Dockerfile push: false timeout-minutes: 95 build-ipu: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: # the config used in 'dockers/ipu-ci-runner/Dockerfile' python_version: ["3.9"] # latest pytorch_version: ["1.9"] steps: - name: Checkout uses: actions/checkout@v2 - name: Build IPU Docker uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} PYTORCH_VERSION=${{ matrix.pytorch_version }} file: dockers/base-ipu/Dockerfile push: false tags: pytorchlightning/pytorch_lightning:base-ipu-py${{ matrix.python_version }}-torch${{ matrix.pytorch_version }} timeout-minutes: 50 - name: Build IPU CI runner Docker uses: docker/build-push-action@v2 with: build-args: | PYTHON_VERSION=${{ matrix.python_version }} PYTORCH_VERSION=${{ matrix.pytorch_version }} file: dockers/ipu-ci-runner/Dockerfile push: false timeout-minutes: 60