Files
bigbirb/.github/workflows/docker-image.yml

65 lines
2.0 KiB
YAML

name: Docker Image CI
on:
push:
branches: [ "main" ]
repository_dispatch:
types: [ lamm-updated ]
jobs:
build_amd64:
runs-on: ubuntu-latest
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- uses: actions/checkout@v4
- name: Build and push the Docker image
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:amd64
- uses: actions/checkout@v4
- name: Push the Docker image
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:amd64
build_arm64:
runs-on: self-hosted
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- uses: actions/checkout@v4
- name: Build the Docker image
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:arm64
- uses: actions/checkout@v4
- name: Push the Docker image
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:arm64
create_manifest:
needs: [build_amd64, build_arm64]
runs-on: ubuntu-latest
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Create and push multi-arch manifest
run: |
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:amd64
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:arm64
docker manifest create ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:latest \
--amend ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:amd64 \
--amend ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:arm64
docker manifest push ${{ secrets.DOCKERHUB_USERNAME }}/discord-bot:latest