From 38973ce6705491edbc67f193816cbf9b9712b1e6 Mon Sep 17 00:00:00 2001 From: Jan Stabenow Date: Fri, 1 Jul 2022 12:58:24 +0200 Subject: [PATCH] Mod merges workflows --- .github/workflows/build_base_alpine.yaml | 62 +++++++++++++++ .github/workflows/build_base_alpine_dev.yaml | 83 ++++++++++++++++++++ .github/workflows/build_base_ubuntu.yaml | 62 +++++++++++++++ .github/workflows/build_bundle-cuda.yaml | 71 +++++++++++++++++ .github/workflows/build_bundle-rpi.yaml | 71 +++++++++++++++++ .github/workflows/build_bundle-vaapi.yaml | 71 +++++++++++++++++ .github/workflows/build_bundle.yaml | 71 +++++++++++++++++ .github_build/Build.alpine.env | 5 ++ .github_build/Build.bundle.cuda.env | 3 + .github_build/Build.bundle.env | 2 + .github_build/Build.bundle.rpi.env | 2 + .github_build/Build.bundle.vaapi.env | 2 + .github_build/Build.ubuntu.env | 5 ++ 13 files changed, 510 insertions(+) create mode 100644 .github/workflows/build_base_alpine.yaml create mode 100644 .github/workflows/build_base_alpine_dev.yaml create mode 100644 .github/workflows/build_base_ubuntu.yaml create mode 100644 .github/workflows/build_bundle-cuda.yaml create mode 100644 .github/workflows/build_bundle-rpi.yaml create mode 100644 .github/workflows/build_bundle-vaapi.yaml create mode 100644 .github/workflows/build_bundle.yaml create mode 100644 .github_build/Build.alpine.env create mode 100644 .github_build/Build.bundle.cuda.env create mode 100644 .github_build/Build.bundle.env create mode 100644 .github_build/Build.bundle.rpi.env create mode 100644 .github_build/Build.bundle.vaapi.env create mode 100644 .github_build/Build.ubuntu.env diff --git a/.github/workflows/build_base_alpine.yaml b/.github/workflows/build_base_alpine.yaml new file mode 100644 index 00000000..2631f4df --- /dev/null +++ b/.github/workflows/build_base_alpine.yaml @@ -0,0 +1,62 @@ +name: 'Build base:alpine-core' + +on: + workflow_dispatch: + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.alpine.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile + build-args: | + BUILD_IMAGE=${{ env.OS_NAME }}:${{ env.OS_VERSION }} + GOLANG_IMAGE=${{ env.GOLANG_IMAGE }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: | + datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + datarhei/base:${{ env.OS_NAME }}-core-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_base_alpine_dev.yaml b/.github/workflows/build_base_alpine_dev.yaml new file mode 100644 index 00000000..5fc76424 --- /dev/null +++ b/.github/workflows/build_base_alpine_dev.yaml @@ -0,0 +1,83 @@ +name: 'Build base:alpine-core:dev' + +on: + workflow_dispatch: + workflow_call: + push: + branches: + - dev + +jobs: + docker: + runs-on: [self-hosted] + strategy: + matrix: + branch: + - dev + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ matrix.branch }} + + - uses: actions-ecosystem/action-get-latest-tag@v1 + id: get-latest-tag + with: + semver_only: true + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.alpine.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + datarhei/base + tags: | + type=raw,value=${{ env.OS_NAME }}-core-dev,enable=${{ matrix.branch == 'dev' }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile + build-args: | + BUILD_IMAGE=${{ env.OS_NAME }}:${{ env.OS_VERSION }} + GOLANG_IMAGE=${{ env.GOLANG_IMAGE }} + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_base_ubuntu.yaml b/.github/workflows/build_base_ubuntu.yaml new file mode 100644 index 00000000..8974b18d --- /dev/null +++ b/.github/workflows/build_base_ubuntu.yaml @@ -0,0 +1,62 @@ +name: 'Build base:ubuntu-core' + +on: + workflow_dispatch: + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.ubuntu.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile + build-args: | + BUILD_IMAGE=${{ env.OS_NAME }}:${{ env.OS_VERSION }} + GOLANG_IMAGE=${{ env.GOLANG_IMAGE }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: | + datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + datarhei/base:${{ env.OS_NAME }}-core-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_bundle-cuda.yaml b/.github/workflows/build_bundle-cuda.yaml new file mode 100644 index 00000000..cf3cb617 --- /dev/null +++ b/.github/workflows/build_bundle-cuda.yaml @@ -0,0 +1,71 @@ +name: 'Build core:cuda' + +on: + workflow_dispatch: + schedule: + - cron: '7 5 * * *' + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.ubuntu.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.bundle.cuda.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile.bundle + build-args: | + CORE_IMAGE=datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + FFMPEG_IMAGE=datarhei/base:${{ env.OS_NAME }}-ffmpeg-cuda-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }}-${{ env.CUDA_VERSION }} + platforms: linux/amd64 + push: true + tags: | + datarhei/core:cuda-${{ env.CORE_VERSION }} + datarhei/core:cuda-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_bundle-rpi.yaml b/.github/workflows/build_bundle-rpi.yaml new file mode 100644 index 00000000..9e57735a --- /dev/null +++ b/.github/workflows/build_bundle-rpi.yaml @@ -0,0 +1,71 @@ +name: 'Build core:rpi' + +on: + workflow_dispatch: + schedule: + - cron: '7 5 * * *' + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.alpine.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.bundle.rpi.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile.bundle + build-args: | + CORE_IMAGE=datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + FFMPEG_IMAGE=datarhei/base:${{ env.OS_NAME }}-ffmpeg-rpi-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }} + platforms: linux/arm/v7, linux/arm64 + push: true + tags: | + datarhei/core:rpi-${{ env.CORE_VERSION }} + datarhei/core:rpi-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_bundle-vaapi.yaml b/.github/workflows/build_bundle-vaapi.yaml new file mode 100644 index 00000000..d35d452f --- /dev/null +++ b/.github/workflows/build_bundle-vaapi.yaml @@ -0,0 +1,71 @@ +name: 'Build core:vaapi' + +on: + workflow_dispatch: + schedule: + - cron: '7 5 * * *' + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.alpine.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.bundle.vaapi.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile.bundle + build-args: | + CORE_IMAGE=datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + FFMPEG_IMAGE=datarhei/base:${{ env.OS_NAME }}-ffmpeg-vaapi-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }} + platforms: linux/amd64 + push: true + tags: | + datarhei/core:vaapi-${{ env.CORE_VERSION }} + datarhei/core:vaapi-latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github/workflows/build_bundle.yaml b/.github/workflows/build_bundle.yaml new file mode 100644 index 00000000..e2e810fb --- /dev/null +++ b/.github/workflows/build_bundle.yaml @@ -0,0 +1,71 @@ +name: 'Build core' + +on: + workflow_dispatch: + schedule: + - cron: '7 5 * * *' + push: + branches-ignore: + - '**' + +jobs: + docker: + runs-on: [self-hosted] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.alpine.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - uses: cardinalby/export-env-action@v1 + with: + envFile: '.github_build/Build.bundle.env' + export: 'true' + expandWithJobEnv: 'true' + expand: 'true' + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build Multi-Arch + uses: docker/build-push-action@v2 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile.bundle + build-args: | + CORE_IMAGE=datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }} + FFMPEG_IMAGE=datarhei/base:${{ env.OS_NAME }}-ffmpeg-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: | + datarhei/core:${{ env.CORE_VERSION }} + datarhei/core:latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new diff --git a/.github_build/Build.alpine.env b/.github_build/Build.alpine.env new file mode 100644 index 00000000..a89047b8 --- /dev/null +++ b/.github_build/Build.alpine.env @@ -0,0 +1,5 @@ +# CORE ALPINE BASE IMAGE +OS_NAME=alpine +OS_VERSION=3.15 +GOLANG_IMAGE=golang:1.18.2-alpine3.15 +CORE_VERSION=16.8.0 diff --git a/.github_build/Build.bundle.cuda.env b/.github_build/Build.bundle.cuda.env new file mode 100644 index 00000000..911bf09b --- /dev/null +++ b/.github_build/Build.bundle.cuda.env @@ -0,0 +1,3 @@ +# CORE NVIDIA CUDA BUNDLE +FFMPEG_VERSION=4.4.2 +CUDA_VERSION=11.4.2 diff --git a/.github_build/Build.bundle.env b/.github_build/Build.bundle.env new file mode 100644 index 00000000..88b752ce --- /dev/null +++ b/.github_build/Build.bundle.env @@ -0,0 +1,2 @@ +# CORE BUNDLE +FFMPEG_VERSION=4.4.2 diff --git a/.github_build/Build.bundle.rpi.env b/.github_build/Build.bundle.rpi.env new file mode 100644 index 00000000..83fc5dbf --- /dev/null +++ b/.github_build/Build.bundle.rpi.env @@ -0,0 +1,2 @@ +# CORE RASPBERRY-PI BUNDLE +FFMPEG_VERSION=4.4.2 diff --git a/.github_build/Build.bundle.vaapi.env b/.github_build/Build.bundle.vaapi.env new file mode 100644 index 00000000..88b752ce --- /dev/null +++ b/.github_build/Build.bundle.vaapi.env @@ -0,0 +1,2 @@ +# CORE BUNDLE +FFMPEG_VERSION=4.4.2 diff --git a/.github_build/Build.ubuntu.env b/.github_build/Build.ubuntu.env new file mode 100644 index 00000000..f39d63bd --- /dev/null +++ b/.github_build/Build.ubuntu.env @@ -0,0 +1,5 @@ +# CORE UBUNTU BASE IMAGE +OS_NAME=ubuntu +OS_VERSION=20.04 +GOLANG_IMAGE=golang:1.18.2-alpine3.15 +CORE_VERSION=16.8.0