Skip to content

Extract PF archive import execution (#26) #48

Extract PF archive import execution (#26)

Extract PF archive import execution (#26) #48

name: Publish Container Images
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: "false"
on:
push:
branches: [main]
tags:
- "v*"
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
publish:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: sentinel-core
context: ./sentinel-core
dockerfile: ./sentinel-core/Dockerfile
image: ghcr.io/the-artificer-of-ciphers-llc/sentinel-core
build_contexts: |
shared=./shared
- name: discord-interface
context: .
dockerfile: ./interfaces/discord/Dockerfile
image: ghcr.io/the-artificer-of-ciphers-llc/sentinel-discord
build_contexts: ""
- name: pathfinder-module
context: ./modules/pathfinder
dockerfile: ./modules/pathfinder/Dockerfile
image: ghcr.io/the-artificer-of-ciphers-llc/sentinel-pathfinder
build_contexts: |
shared=./shared
# pi-harness is planned but not yet implemented — no ./pi-harness/Dockerfile
# exists yet, so this build job fails every run. Re-enable this entry once
# the pi-harness component is built.
# - name: pi-harness
# context: ./pi-harness
# dockerfile: ./pi-harness/Dockerfile
# image: ghcr.io/the-artificer-of-ciphers-llc/sentinel-pi-harness
# build_contexts: ""
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ matrix.image }}
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=ref,event=branch
type=ref,event=tag
type=sha,prefix=sha-
- name: Build and push ${{ matrix.name }}
uses: docker/build-push-action@v6
with:
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-contexts: ${{ matrix.build_contexts }}