mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 05:08:22 +00:00
* Use GitHub Actions cache when building Docker images This firstly removes the `pull: true` option from all `build-push-action` invocations, as it was assumed it caused Docker to pull the existing image first before building the new one, where as it instead makes sure the base image is up to date prior to starting the build. Instead the `cache-from` and `cache-to` options are added which cause the action to store and retrieve caches for each layer from GitHub Actions' cache system as documented at https://docs.docker.com/build/ci/github-actions/examples/#cache-backend-api. * Pin exact Go version in testing image This matches what is done for the production image.
54 lines
1.4 KiB
YAML
54 lines
1.4 KiB
YAML
name: testing-env-image
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- "testing/**"
|
|
- ".github/workflows/testing-env-image.yml"
|
|
branches:
|
|
- "main"
|
|
pull_request:
|
|
paths:
|
|
- 'testing/**'
|
|
- '.github/workflows/testing-env-image.yml'
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
with:
|
|
image: tonistiigi/binfmt:latest
|
|
platforms: arm64,arm
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Login to Packages Container registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- run: echo "TODAY=$(date +"%Y.%m.%d")" >> $GITHUB_ENV
|
|
- name: Build and push testing-env:${{env.TODAY}} image
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
context: testing
|
|
platforms: linux/arm64/v8,linux/amd64,linux/arm/v7
|
|
push: ${{ github.event_name != 'pull_request' }}
|
|
tags: |
|
|
ghcr.io/runatlantis/testing-env:${{env.TODAY}}
|
|
ghcr.io/runatlantis/testing-env:latest
|