Skip to content
This repository has been archived by the owner on Nov 13, 2024. It is now read-only.

Docker

Docker #6964

name: Docker
on:
pull_request:
branches:
- main
push:
branches:
- main
tags:
- v*
schedule:
- cron: '0 16 * * *' # Every day at 16:00 UTC (~09:00 PT)
jobs:
# Push container image to GitHub Packages and Docker Hub.
# See also https://docs.docker.com/docker-hub/builds/
deploy:
name: Docker image build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
if: github.event_name == 'schedule'
with:
submodules: true
ref: main
- uses: actions/checkout@v2
if: github.event_name != 'schedule'
with:
submodules: true
- uses: docker/setup-qemu-action@v1
name: Set up QEMU
id: qemu
with:
image: tonistiigi/binfmt:latest
platforms: all
- uses: docker/setup-buildx-action@v1
name: Set up Docker Buildx
id: buildx
- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
# Build images
- name: Build Codex
run: |
./scripts/codex/buildx.sh
# Log into container registries
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: wildmeorg
password: ${{ secrets.WBIA_WILDMEBOT_DOCKER_HUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GHCR_PAT }}
# Push tagged image (version tag + latest) to registries
- name: Tagged Docker Hub
if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') }}
run: |
VERSION=$(echo ${GITHUB_REF} | sed 's#.*/v##')
./scripts/utils/buildx.docker.sh -t ${VERSION}
./scripts/utils/buildx.docker.sh -t latest
- name: Tagged GHCR
if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') }}
run: |
VERSION=$(echo ${GITHUB_REF} | sed 's#.*/v##')
./scripts/utils/buildx.docker.sh -t ${VERSION} -r ghcr.io/wildmeorg/houston
./scripts/utils/buildx.docker.sh -t latest -r ghcr.io/wildmeorg/houston
# Push bleeding-edge image (main tag) to registries
- name: Bleeding Edge Docker Hub
if: github.ref == 'refs/heads/main'
run: |
./scripts/utils/buildx.docker.sh -t main
- name: Bleeding Edge GHCR
if: github.ref == 'refs/heads/main'
run: |
./scripts/utils/buildx.docker.sh -t main -r ghcr.io/wildmeorg/houston
# Push nightly image (nightly tag) to registries
- name: Nightly Docker Hub
if: github.event_name == 'schedule'
run: |
./scripts/utils/buildx.docker.sh -t nightly
- name: Nightly GHCR
if: github.event_name == 'schedule'
run: |
./scripts/utils/buildx.docker.sh -t nightly -r ghcr.io/wildmeorg/houston
# Notify status in Slack
- name: Slack Notification
if: ${{ failure() && github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') }}
uses: rtCamp/action-slack-notify@master
env:
SLACK_CHANNEL: dev-houston
SLACK_COLOR: '#FF0000'
SLACK_ICON: https://avatars.slack-edge.com/2020-03-02/965719891842_db87aa21ccb61076f236_44.png
SLACK_MESSAGE: 'Tagged / Latest Docker build of Houston failed :sob:'
SLACK_USERNAME: "GitHub CI"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
- name: Slack Notification
if: ${{ failure() && github.ref == 'refs/heads/main' }}
uses: rtCamp/action-slack-notify@master
env:
SLACK_CHANNEL: dev-houston
SLACK_COLOR: '#FF0000'
SLACK_ICON: https://avatars.slack-edge.com/2020-03-02/965719891842_db87aa21ccb61076f236_44.png
SLACK_MESSAGE: 'Bleeding Edge Docker build of Houston failed :sob:'
SLACK_USERNAME: "GitHub CI"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
- name: Slack Notification
if: ${{ failure() && github.event_name == 'schedule' }}
uses: rtCamp/action-slack-notify@master
env:
SLACK_CHANNEL: dev-houston
SLACK_COLOR: '#FF0000'
SLACK_ICON: https://avatars.slack-edge.com/2020-03-02/965719891842_db87aa21ccb61076f236_44.png
SLACK_MESSAGE: 'Nightly Docker build of Houston failed :sob:'
SLACK_USERNAME: "GitHub CI"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}