Bump docker/setup-buildx-action from 1.6.0 to 2.9.1 #101
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "CI" | |
# The workflow should be triggered on any push and release events. | |
# Release events can push tags (triggering a push event). | |
# Therefore: | |
# - docker-publish-staging – is only triggered on push events to main branch | |
# - docker-publish-release – is only triggered on release events | |
on: | |
push: | |
release: | |
types: [ released ] | |
jobs: | |
flake8: | |
name: flake8 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- run: python -m pip install flake8 | |
- name: flake8 | |
uses: liskin/gh-problem-matcher-wrap@v1 | |
with: | |
linters: flake8 | |
run: flake8 | |
isort: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- run: python -m pip install isort | |
- name: isort | |
uses: liskin/gh-problem-matcher-wrap@v1 | |
with: | |
linters: isort | |
run: isort --check --profile black src/ | |
black: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- run: python -m pip install black | |
- name: black | |
run: black --check src/ | |
django-check: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:13-alpine | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
env: | |
SECRET_KEY: 'insecure_key_for_dev' | |
POSTGRES_HOST: localhost | |
POSTGRES_PORT: 5432 | |
AWS_ACCESS_KEY_ID: 'example-aws-access-key-id' | |
AWS_SECRET_ACCESS_KEY: 'example-aws-secret-access-key' | |
AWS_STORAGE_BUCKET_NAME: 'example-aws-storage-bucket-name' | |
steps: | |
- name: Check out repository code | |
uses: actions/[email protected] | |
- uses: actions/[email protected] | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements-dev.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
pip install -r requirements-dev.txt | |
- name: Run mypy | |
run: mypy --strict src/chains src/safe_apps | |
- name: Check pending migrations | |
run: python src/manage.py makemigrations --check --dry-run | |
- name: Run migrations | |
run: python src/manage.py migrate | |
- name: Django System Check | |
run: python src/manage.py check | |
- name: Run tests with coverage | |
run: coverage run -m pytest src | |
- name: Upload coverage | |
continue-on-error: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: coveralls --service=github | |
docker-publish: | |
if: | | |
(github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
(github.event_name == 'release' && github.event.action == 'released') | |
needs: [ flake8, isort, black, django-check ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Cache Docker layers | |
uses: actions/[email protected] | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Login to DockerHub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKER_USER }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Set tag (staging) | |
# Set "staging" as Docker tag if the event is a push to main branch | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
run: echo "DOCKER_TAG=staging" >> $GITHUB_ENV | |
- name: Set tag (release) | |
# Set the tag versions as Docker tag if it is a release event | |
if: github.event_name == 'release' && github.event.action == 'released' | |
run: echo "DOCKER_TAG=${{ github.event.release.tag_name }}" >> $GITHUB_ENV | |
- name: Build and push | |
id: docker_build | |
uses: docker/[email protected] | |
with: | |
context: . | |
push: true | |
tags: gnosispm/safe-config-service:${{ env.DOCKER_TAG }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
- # Temp fix | |
# https://github.com/docker/build-push-action/issues/252 | |
# https://github.com/moby/buildkit/issues/1896 | |
name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
- name: Image digest | |
run: echo ${{ steps.docker_build.outputs.digest }} |