This commit is contained in:
Dylan M. Taylor 2026-03-27 13:03:47 +01:00 committed by GitHub
commit fa7f0de5e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 153 additions and 19 deletions

View File

@ -13,6 +13,9 @@ on:
type: boolean
default: false
env:
IMAGE: ghcr.io/crosstalk-solutions/project-nomad-disk-collector
jobs:
check_authorization:
name: Check authorization to publish new Docker image
@ -23,29 +26,70 @@ jobs:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
build:
name: Build disk-collector image
name: Build Docker image (${{ matrix.platform }})
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- platform: linux/amd64
runner: ubuntu-24.04
suffix: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
suffix: arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: actions/checkout@v6
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: install/sidecar-disk-collector
push: true
tags: |
ghcr.io/crosstalk-solutions/project-nomad-disk-collector:${{ inputs.version }}
ghcr.io/crosstalk-solutions/project-nomad-disk-collector:v${{ inputs.version }}
${{ inputs.tag_latest && 'ghcr.io/crosstalk-solutions/project-nomad-disk-collector:latest' || '' }}
platforms: ${{ matrix.platform }}
tags: ${{ env.IMAGE }}:${{ inputs.version }}-${{ matrix.suffix }}
manifest:
name: Create multi-arch manifest
needs: build
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push manifest
run: |
TAGS="${{ env.IMAGE }}:${{ inputs.version }} ${{ env.IMAGE }}:v${{ inputs.version }}"
if [ "${{ inputs.tag_latest }}" = "true" ]; then
TAGS="$TAGS ${{ env.IMAGE }}:latest"
fi
for TAG in $TAGS; do
docker manifest create "$TAG" \
"${{ env.IMAGE }}:${{ inputs.version }}-amd64" \
"${{ env.IMAGE }}:${{ inputs.version }}-arm64"
docker manifest push "$TAG"
done

View File

@ -13,6 +13,9 @@ on:
type: boolean
default: false
env:
IMAGE: ghcr.io/crosstalk-solutions/project-nomad
jobs:
check_authorization:
name: Check authorization to publish new Docker image
@ -23,32 +26,73 @@ jobs:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
build:
name: Build Docker image
name: Build Docker image (${{ matrix.platform }})
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- platform: linux/amd64
runner: ubuntu-24.04
suffix: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
suffix: arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: actions/checkout@v6
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: |
ghcr.io/crosstalk-solutions/project-nomad:${{ inputs.version }}
ghcr.io/crosstalk-solutions/project-nomad:v${{ inputs.version }}
${{ inputs.tag_latest && 'ghcr.io/crosstalk-solutions/project-nomad:latest' || '' }}
platforms: ${{ matrix.platform }}
tags: ${{ env.IMAGE }}:${{ inputs.version }}-${{ matrix.suffix }}
build-args: |
VERSION=${{ inputs.version }}
BUILD_DATE=${{ github.event.workflow_run.created_at }}
VCS_REF=${{ github.sha }}
manifest:
name: Create multi-arch manifest
needs: build
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push manifest
run: |
TAGS="${{ env.IMAGE }}:${{ inputs.version }} ${{ env.IMAGE }}:v${{ inputs.version }}"
if [ "${{ inputs.tag_latest }}" = "true" ]; then
TAGS="$TAGS ${{ env.IMAGE }}:latest"
fi
for TAG in $TAGS; do
docker manifest create "$TAG" \
"${{ env.IMAGE }}:${{ inputs.version }}-amd64" \
"${{ env.IMAGE }}:${{ inputs.version }}-arm64"
docker manifest push "$TAG"
done

View File

@ -13,6 +13,9 @@ on:
type: boolean
default: false
env:
IMAGE: ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater
jobs:
check_authorization:
name: Check authorization to publish new Docker image
@ -23,29 +26,70 @@ jobs:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
build:
name: Build sidecar-updater image
name: Build Docker image (${{ matrix.platform }})
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- platform: linux/amd64
runner: ubuntu-24.04
suffix: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
suffix: arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: actions/checkout@v6
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: install/sidecar-updater
push: true
tags: |
ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater:${{ inputs.version }}
ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater:v${{ inputs.version }}
${{ inputs.tag_latest && 'ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater:latest' || '' }}
platforms: ${{ matrix.platform }}
tags: ${{ env.IMAGE }}:${{ inputs.version }}-${{ matrix.suffix }}
manifest:
name: Create multi-arch manifest
needs: build
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push manifest
run: |
TAGS="${{ env.IMAGE }}:${{ inputs.version }} ${{ env.IMAGE }}:v${{ inputs.version }}"
if [ "${{ inputs.tag_latest }}" = "true" ]; then
TAGS="$TAGS ${{ env.IMAGE }}:latest"
fi
for TAG in $TAGS; do
docker manifest create "$TAG" \
"${{ env.IMAGE }}:${{ inputs.version }}-amd64" \
"${{ env.IMAGE }}:${{ inputs.version }}-arm64"
docker manifest push "$TAG"
done

View File

@ -75,6 +75,8 @@ At it's core, however, N.O.M.A.D. is still very lightweight. For a barebones ins
- OS: Debian-based (Ubuntu recommended)
- Stable internet connection (required during install only)
*NOTE*: ARM images are community-contributed. Installing on ARM is not officially supported.
To run LLM's and other included AI tools:
#### Optimal Specs
@ -144,4 +146,4 @@ sudo bash /opt/project-nomad/update_nomad.sh
###### Uninstall Script - Need to start fresh? Use the uninstall script to make your life easy. Note: this cannot be undone!
```bash
curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/uninstall_nomad.sh -o uninstall_nomad.sh && sudo bash uninstall_nomad.sh
```
```