mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-28 17:32:38 +02:00

Currently, linting is done in one specific job of the big test Matrix, and it's very easy to overlook. But we want linting to be the first thing to fix. Also reorganize and rename jobs for readability. Finally, use python 3.11 for lint/docs because python 3.12 seems to break dev install.
67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
name: Docker build
|
|
|
|
on:
|
|
push:
|
|
tags: ['*']
|
|
branches: [ 'master', 'stable-*' ]
|
|
pull_request:
|
|
branches: [ 'master', 'stable-*' ]
|
|
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Test image # Checks we are able to run the container.
|
|
run: docker compose -f docker-compose.test.yml run sut
|
|
|
|
build_upload:
|
|
runs-on: ubuntu-latest
|
|
needs: test
|
|
if: github.event_name != 'pull_request'
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Cache Docker layers
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: /tmp/.buildx-cache
|
|
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ runner.os }}-buildx-
|
|
|
|
- name: Extract metadata for Docker
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: ${{ secrets.DOCKERHUB_ORGANISATION }}/${{ secrets.DOCKERHUB_REPOSITORY }}
|
|
|
|
- uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
|
|
|
- name: Build and push
|
|
id: docker_build
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: ./
|
|
file: ./Dockerfile
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
push: true
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
cache-from: type=local,src=/tmp/.buildx-cache
|
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
|
|
|
- name: Image digest
|
|
run: echo ${{ steps.docker_build.outputs.digest }}
|