Skip to content

docker-publish

docker-publish #275

name: docker-publish
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 0 * * 0"
repository_dispatch:
types: [pretext-publish]
workflow_dispatch:
inputs:
container:
description: "Which docker image(s) to rebuild"
required: true
type: choice
default: "all"
options:
- "all"
- "lite"
- "small"
- "full"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push lite
if: ${{ github.event.inputs.container == 'all' || github.event.inputs.container == 'lite' || github.event.inputs.container == '' }}
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
context: .
file: ./lite/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pretext:lite
- name: Build and push small
if: ${{ github.event.inputs.container == 'all' || github.event.inputs.container == 'small' || github.event.inputs.container == ''}}
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
context: .
file: ./small/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pretext:small
- name: Build and push full
if: ${{ github.event.inputs.container == 'all' || github.event.inputs.container == 'full' || github.event.inputs.container == '' }}
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
context: .
file: ./full/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pretext:full