mirror of
https://github.com/TokTok/c-toxcore
synced 2026-06-03 21:21:36 +00:00
dfb9a0b02b
A bit infuriating that when you submit a PR modifying the Windows cross-compilation script, the CI *builds* the current image in one job, but then *runs* an older (!) image from Dockerhub in another. So it tests that the modified image builds successfully but doesn't test if it runs successfully, instead testing if an older image runs successfully / testing if the current toxcore changes run successfully in an older image. This should build and run the same image with the current changes.
182 lines
6.2 KiB
YAML
182 lines
6.2 KiB
YAML
name: docker
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
# Cancel old PR builds when pushing new commits.
|
|
concurrency:
|
|
group: docker-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
docker-bootstrap-node:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: Docker Build
|
|
run: .github/scripts/tox-bootstrapd-docker local "$CHECK"
|
|
env:
|
|
CHECK: "${{ contains(github.event.pull_request.title, 'chore: Release ') && 'sha256sum' || 'echo' }}"
|
|
- name: Push latest image to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
run: docker push toxchat/bootstrap-node:latest
|
|
- name: Push versioned image to DockerHub
|
|
if: ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags/') }}
|
|
run: docker push toxchat/bootstrap-node:"$(other/print-version)"
|
|
|
|
docker-bootstrap-node-websocket:
|
|
runs-on: ubuntu-latest
|
|
needs: [docker-bootstrap-node]
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: "{{defaultContext}}:other/bootstrap_daemon/websocket"
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/bootstrap-node:latest-websocket
|
|
cache-from: type=registry,ref=toxchat/bootstrap-node:latest-websocket
|
|
cache-to: type=inline
|
|
|
|
docker-clusterfuzz:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: "."
|
|
file: .clusterfuzzlite/Dockerfile
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/c-toxcore:clusterfuzz
|
|
cache-from: type=registry,ref=toxchat/c-toxcore:clusterfuzz
|
|
cache-to: type=inline
|
|
|
|
docker-fuzzer:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
file: testing/Dockerfile
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/c-toxcore:fuzzer
|
|
cache-from: type=registry,ref=toxchat/c-toxcore:fuzzer
|
|
cache-to: type=inline
|
|
|
|
docker-toxcore-js:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
file: other/emscripten/Dockerfile
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/c-toxcore:wasm
|
|
cache-from: type=registry,ref=toxchat/c-toxcore:wasm
|
|
cache-to: type=inline
|
|
|
|
docker-esp32:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
file: other/docker/esp32/Dockerfile
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/c-toxcore:esp32
|
|
cache-from: type=registry,ref=toxchat/c-toxcore:esp32
|
|
cache-to: type=inline
|
|
|
|
docker-windows-mingw:
|
|
strategy:
|
|
matrix:
|
|
bits: [32, 64]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Login to DockerHub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and store to local Docker daemon
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: other/docker/windows
|
|
load: true
|
|
tags: toxchat/windows:win${{ matrix.bits }}
|
|
cache-from: type=registry,ref=toxchat/windows:win${{ matrix.bits }}
|
|
build-args: |
|
|
SUPPORT_ARCH_i686=${{ matrix.bits == '32' }}
|
|
SUPPORT_ARCH_x86_64=${{ matrix.bits == '64' }}
|
|
SUPPORT_TEST=true
|
|
- name: Push the stored image to Dockerhub
|
|
if: ${{ github.event_name == 'push' }}
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: other/docker/windows
|
|
push: ${{ github.event_name == 'push' }}
|
|
tags: toxchat/windows:win${{ matrix.bits }}
|
|
build-args: |
|
|
SUPPORT_ARCH_i686=${{ matrix.bits == '32' }}
|
|
SUPPORT_ARCH_x86_64=${{ matrix.bits == '64' }}
|
|
SUPPORT_TEST=true
|
|
- name: Cross-compile
|
|
run: .github/scripts/cmake-win${{ matrix.bits }} script
|