Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 9 additions & 51 deletions .github/workflows/publish-dashboard.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish Dashboard image to GHCR
name: Publish Dashboard image to GHCR & DockerHub

on:
push:
Expand All @@ -10,23 +10,20 @@ on:
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/exosphere-dashboard
GHCR_REGISTRY: ghcr.io
DOCKER_REGISTRY: docker.io
IMAGE_NAME: exosphere-dashboard
SHA_TAG: ${{ github.sha }}

jobs:
publish-image-on-ghcr:
publish-image:
runs-on: ubuntu-latest
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4

Expand All @@ -40,51 +37,10 @@ jobs:
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate tags & labels
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=beta-latest
type=sha,format=short

- name: Build and push
uses: docker/build-push-action@v5
with:
context: ./dashboard
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: true
sbom: true

publish-image-on-docker:
runs-on: ubuntu-latest
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
Expand All @@ -96,7 +52,9 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
images: |
${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
${{ env.DOCKER_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=beta-latest
type=sha,format=short
Expand Down
69 changes: 12 additions & 57 deletions .github/workflows/publish-state-mangaer.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish State Manager image to GHCR
name: Publish State Manager image to GHCR & DockerHub

on:
push:
Expand All @@ -8,8 +8,9 @@ on:
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/exosphere-state-manager
GHCR_REGISTRY: ghcr.io
DOCKER_REGISTRY: docker.io
IMAGE_NAME: exosphere-state-manager
SHA_TAG: ${{ github.sha }}

jobs:
Expand Down Expand Up @@ -46,8 +47,7 @@ jobs:

- name: Install dev dependencies with uv
working-directory: state-manager
run: |
uv sync --group dev
run: uv sync --group dev

- name: Run full test suite with coverage
working-directory: state-manager
Expand All @@ -69,18 +69,14 @@ jobs:
name: state-manager-coverage-report
fail_ci_if_error: true

publish-image-on-ghcr:
publish-image:
runs-on: ubuntu-latest
needs: test
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4
Expand All @@ -95,53 +91,10 @@ jobs:
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate tags & labels
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw, value=beta-latest
type=sha, value=${{ env.SHA_TAG }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: ./state-manager
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: true
sbom: true

publish-image-on-docker-hub:
runs-on: ubuntu-latest
needs: test
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
Expand All @@ -152,10 +105,12 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
images: |
${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
${{ env.DOCKER_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
tags: |
type=raw, value=beta-latest
type=sha, value=${{ env.SHA_TAG }}
type=raw,value=beta-latest
type=sha,format=short

- name: Build and push
uses: docker/build-push-action@v5
Expand Down
60 changes: 7 additions & 53 deletions .github/workflows/release-dashboard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,20 @@ on:
types: [published]

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/exosphere-dashboard
GHCR_REGISTRY: ghcr.io
DOCKER_REGISTRY: docker.io
IMAGE_NAME: exosphere-dashboard
SHA_TAG: ${{ github.sha }}

jobs:
publish-image-on-ghcr:
publish-image:
runs-on: ubuntu-latest
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4

Expand All @@ -39,51 +36,6 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate tags & labels
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha,format=short

- name: Build and push
uses: docker/build-push-action@v5
with:
context: ./dashboard
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
provenance: true
sbom: true

publish-image-on-docker-hub:
runs-on: ubuntu-latest
if: github.repository == 'exospherehost/exospherehost'

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}
json: ${{ steps.meta.outputs.json }}

steps:
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
Expand All @@ -94,7 +46,9 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
images: |
${{ env.GHCR_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
${{ env.DOCKER_REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
type=semver,pattern={{version}}
Expand Down
Loading