* feat: enable multi-arch builds and add tor and i2p images This commit introduces multi-architecture support (amd64 & arm64) for Docker image builds using Docker Buildx. It also adds new images for tor and i2p services. The release script is updated to handle these new images and to accept a Docker Hub username as an argument. The publish workflow is updated to use the new release script and to set up QEMU and Docker Buildx. * feat(publish.yaml): add workflow_dispatch trigger to publish workflow feat(publish.yaml): allow publish workflow to run when workflow_dispatch event is triggered * feat(dockerfiles/monero): add support for ARM64 architecture * build(dockerfiles/monero): remove duplicate FROM instruction release(monero)
125 lines
3.3 KiB
YAML
125 lines
3.3 KiB
YAML
name: Publish images to Docker Hub
|
|
|
|
on:
|
|
push:
|
|
branches: master
|
|
|
|
env:
|
|
DH_USER: lalanza808
|
|
|
|
jobs:
|
|
nodemapper:
|
|
name: Publish nodemapper image
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.head_commit.message, 'release(nodemapper)')
|
|
steps:
|
|
- name: Authenticate to Dockerhub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push nodemapper image
|
|
run: bash release.sh nodemapper ${{ env.DH_USER }}
|
|
|
|
monero:
|
|
name: Publish monero image
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.head_commit.message, 'release(monero)')
|
|
steps:
|
|
- name: Authenticate to Dockerhub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push monero image
|
|
run: bash release.sh monero ${{ env.DH_USER }}
|
|
|
|
exporter:
|
|
name: Publish exporter image
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.head_commit.message, 'release(exporter)')
|
|
steps:
|
|
- name: Authenticate to Dockerhub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push exporter image
|
|
run: bash release.sh exporter ${{ env.DH_USER }}
|
|
|
|
tor:
|
|
name: Publish tor image
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.head_commit.message, 'release(tor)')
|
|
steps:
|
|
- name: Authenticate to Dockerhub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push tor image
|
|
run: bash release.sh tor ${{ env.DH_USER }}
|
|
|
|
i2p:
|
|
name: Publish i2p image
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.head_commit.message, 'release(i2p)')
|
|
steps:
|
|
- name: Authenticate to Dockerhub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push i2p image
|
|
run: bash release.sh i2p ${{ env.DH_USER }}
|