Skip to content

Add caching of build layers #30

Add caching of build layers

Add caching of build layers #30

name: Docker
on:
push:
branches-ignore:
- "*-PR"
pull_request:
env:
azul_docker_pycharm_version: 5 # increment this to update the OS packages
PYCHARM_VERSION: 2023.2.3
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
# To facilitate local builds using the Makefile
driver-opts: ${{ startsWith(vars.DOCKERHUB_REPOSITORY, 'localhost:') && 'network=host' || '' }}
- name: Log into registry
if: >
github.event_name != 'pull_request'
&& vars.DOCKERHUB_USERNAME
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
build-args: |
azul_docker_pycharm_version=${{ env.azul_docker_pycharm_version }}
PYCHARM_VERSION=${{ env.PYCHARM_VERSION }}
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ vars.DOCKERHUB_REPOSITORY }}:${{ env.PYCHARM_VERSION }}-${{ env.azul_docker_pycharm_version }}
cache-from: type=registry,ref=${{ vars.DOCKERHUB_REPOSITORY }}_buildcache
cache-to: type=registry,ref=${{ vars.DOCKERHUB_REPOSITORY }}_buildcache,mode=max