Ocelot-Social/.github/workflows/maintenance-docker.yml

60 lines
1.7 KiB
YAML

name: Maintenance Docker
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
files-changed:
name: Detect File Changes
runs-on: ubuntu-latest
outputs:
maintenance: ${{ steps.changes.outputs.maintenance }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Check for file changes
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
build:
name: Build Docker Image
if: needs.files-changed.outputs.maintenance == 'true'
needs: files-changed
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
- name: Build development image
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
with:
context: .
file: ./maintenance/Dockerfile
target: development
push: false
tags: ocelot-social/maintenance:development
cache-from: type=gha,scope=maintenance-development
cache-to: type=gha,mode=max,scope=maintenance-development
- name: Build production image
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
with:
context: .
file: ./maintenance/Dockerfile
target: production
push: false
tags: ocelot-social/maintenance:latest
cache-from: type=gha,scope=maintenance-production
cache-to: type=gha,mode=max,scope=maintenance-production