Skip to content

Update readme docker example #270

Update readme docker example

Update readme docker example #270

Workflow file for this run

name: Test And Build BOT
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: chartboost/ruff-action@v1
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v4.5.0
with:
python-version: 3.10.7
- name: Install dependencies
run: |
pip install pytest
pip install -r requirements.txt
- name: Run pytest
run: |
pytest
build-and-push:
needs: [lint, test]
strategy:
matrix:
architecture: [linux-arm-v7, linux-arm64, linux-amd64]
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' && contains(github.ref, 'actions') != 'true'
steps:
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.4.1
with:
install: true
version: latest
driver-opts: image=moby/buildkit:master
- name: Login to DockerHub
uses: docker/login-action@v2.1.0
with:
username: roxedus
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create VARS
id: vars
run: |
ARCHITECTURE=${{ matrix.architecture }}
echo "branch=$(echo ${{github.ref}} | cut -d/ -f3)" >> $GITHUB_OUTPUT
echo "repo=rnorge/music" >> $GITHUB_OUTPUT
echo "platform=${ARCHITECTURE//-/\/}" >> $GITHUB_OUTPUT
echo "ghcr=r-norge/shitemusicbot" >> $GITHUB_OUTPUT
echo "version=$(grep -i bot_version musicbot/utils/bot_version.py | cut -d" " -f3 | tr -d \")" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v4.0.0
with:
push: true
attests: type=sbom,generator=docker/buildkit-syft-scanner
#sbom: true
provenance: true # https://github.com/docker/buildx/issues/1509
platforms: ${{ steps.vars.outputs.platform }}
build-args: BUILDKIT_SBOM_SCAN_CONTEXT=true,BUILDKIT_SBOM_SCAN_STAGE=true
tags: |
${{ steps.vars.outputs.repo }}:${{ steps.vars.outputs.branch }}-${{github.sha}}-${{ matrix.architecture }}
ghcr.io/${{ steps.vars.outputs.ghcr }}:${{ steps.vars.outputs.branch }}-${{github.sha}}-${{ matrix.architecture }}
publish:
needs: [build-and-push]
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' && contains(github.ref, 'actions') != 'true'
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.4.1
with:
install: true
version: latest
driver-opts: image=moby/buildkit:master
- name: Login to DockerHub
uses: docker/login-action@v2.1.0
with:
username: roxedus
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create VARS
id: vars
run: |
echo "branch=$(echo ${{github.ref}} | cut -d/ -f3)" >> $GITHUB_OUTPUT
echo "repo=rnorge/music" >> $GITHUB_OUTPUT
echo "ghcr=r-norge/shitemusicbot" >> $GITHUB_OUTPUT
echo "version=$(grep -i bot_version musicbot/utils/bot_version.py | cut -d" " -f3 | tr -d \")" >> $GITHUB_OUTPUT
- name: Create manifests for DockerHub
env:
DOCKER_CLI_EXPERIMENTAL: enabled
run: |
IMAGE=${{ steps.vars.outputs.repo }}
TAG=${{ steps.vars.outputs.branch }}-${{github.sha}}
SOURCE=${IMAGE}:${TAG}
docker buildx imagetools create -t ${SOURCE} ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
docker buildx imagetools create -t ${IMAGE}:${{ steps.vars.outputs.branch }} ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
if [[ ${GITHUB_REF//refs\/heads\//} == master ]]; then
docker buildx imagetools create -t ${IMAGE}:latest ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
fi
- name: Create manifests for GitHub Container Registry
env:
DOCKER_CLI_EXPERIMENTAL: enabled
run: |
IMAGE=ghcr.io/${{ steps.vars.outputs.ghcr }}
TAG=${{ steps.vars.outputs.branch }}-${{github.sha}}
SOURCE=${IMAGE}:${TAG}
docker buildx imagetools create -t ${SOURCE} ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
docker buildx imagetools create -t ${IMAGE}:${{ steps.vars.outputs.branch }} ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
if [[ ${GITHUB_REF//refs\/heads\//} == master ]]; then
docker buildx imagetools create -t ${IMAGE}:latest ${SOURCE}-linux-amd64 ${SOURCE}-linux-arm-v7 ${SOURCE}-linux-arm64
fi