From e6d2a5640b5426e30be56690b942682c2a030f23 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Sun, 29 Mar 2026 21:31:00 +0200 Subject: [PATCH] ci: handle new variants --- .github/actions/build-test-push/action.yml | 32 +++- .github/actions/build-test-push/build.sh | 164 ++++++++++++++++--- .github/workflows/continuous-delivery.yml | 64 +++++++- .github/workflows/continuous-integration.yml | 124 +++++++++++++- 4 files changed, 355 insertions(+), 29 deletions(-) diff --git a/.github/actions/build-test-push/action.yml b/.github/actions/build-test-push/action.yml index a6d422b..962adf3 100644 --- a/.github/actions/build-test-push/action.yml +++ b/.github/actions/build-test-push/action.yml @@ -29,14 +29,32 @@ inputs: outputs: tags: - description: Comma separated list of tag + description: Comma separated list of full variant tags value: ${{ steps.build.outputs.tags }} + tags_chromium: + description: Comma separated list of Chromium variant tags + value: ${{ steps.build.outputs.tags_chromium }} + tags_libreoffice: + description: Comma separated list of LibreOffice variant tags + value: ${{ steps.build.outputs.tags_libreoffice }} tags_cloud_run: - description: Comma separated list of Cloud Run tags (linux/amd64 only) + description: Comma separated list of Cloud Run full variant tags (linux/amd64 only) value: ${{ steps.build.outputs.tags_cloud_run }} + tags_cloud_run_chromium: + description: Comma separated list of Cloud Run Chromium variant tags (linux/amd64 only) + value: ${{ steps.build.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: + description: Comma separated list of Cloud Run LibreOffice variant tags (linux/amd64 only) + value: ${{ steps.build.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: - description: Comma separated list of AWS Lambda tags (linux/amd64 and linux/arm64 only) + description: Comma separated list of AWS Lambda full variant tags (linux/amd64 and linux/arm64 only) value: ${{ steps.build.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: + description: Comma separated list of AWS Lambda Chromium variant tags (linux/amd64 and linux/arm64 only) + value: ${{ steps.build.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: + description: Comma separated list of AWS Lambda LibreOffice variant tags (linux/amd64 and linux/arm64 only) + value: ${{ steps.build.outputs.tags_aws_lambda_libreoffice }} runs: using: composite @@ -91,7 +109,7 @@ runs: if: inputs.docker_hub_username != '' shell: bash env: - INPUT_TAGS: ${{ steps.build.outputs.tags }},${{ steps.build.outputs.tags_cloud_run }},${{ steps.build.outputs.tags_aws_lambda }} + INPUT_TAGS: ${{ steps.build.outputs.tags }},${{ steps.build.outputs.tags_chromium }},${{ steps.build.outputs.tags_libreoffice }},${{ steps.build.outputs.tags_cloud_run }},${{ steps.build.outputs.tags_cloud_run_chromium }},${{ steps.build.outputs.tags_cloud_run_libreoffice }},${{ steps.build.outputs.tags_aws_lambda }},${{ steps.build.outputs.tags_aws_lambda_chromium }},${{ steps.build.outputs.tags_aws_lambda_libreoffice }} INPUT_DRY_RUN: ${{ inputs.dry_run }} run: | .github/actions/build-test-push/push.sh \ @@ -102,5 +120,11 @@ runs: shell: bash run: | echo "tags=${{ steps.build.outputs.tags }}" + echo "tags_chromium=${{ steps.build.outputs.tags_chromium }}" + echo "tags_libreoffice=${{ steps.build.outputs.tags_libreoffice }}" echo "tags_cloud_run=${{ steps.build.outputs.tags_cloud_run }}" + echo "tags_cloud_run_chromium=${{ steps.build.outputs.tags_cloud_run_chromium }}" + echo "tags_cloud_run_libreoffice=${{ steps.build.outputs.tags_cloud_run_libreoffice }}" echo "tags_aws_lambda=${{ steps.build.outputs.tags_aws_lambda }}" + echo "tags_aws_lambda_chromium=${{ steps.build.outputs.tags_aws_lambda_chromium }}" + echo "tags_aws_lambda_libreoffice=${{ steps.build.outputs.tags_aws_lambda_libreoffice }}" diff --git a/.github/actions/build-test-push/build.sh b/.github/actions/build-test-push/build.sh index dd5da2c..1dca603 100755 --- a/.github/actions/build-test-push/build.sh +++ b/.github/actions/build-test-push/build.sh @@ -55,8 +55,14 @@ fi # Build tags arrays. tags=() +tags_chromium=() +tags_libreoffice=() tags_cloud_run=() +tags_cloud_run_chromium=() +tags_cloud_run_libreoffice=() tags_aws_lambda=() +tags_aws_lambda_chromium=() +tags_aws_lambda_libreoffice=() IFS='/' read -ra arch <<< "$platform" IFS='.' read -ra semver <<< "$version" @@ -69,55 +75,95 @@ if [ "${#semver[@]}" -eq 3 ]; then minor="${semver[1]}" patch="${semver[2]}" - tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:latest-${arch[1]}") - tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major-${arch[1]}") - tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor-${arch[1]}") - tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor.$patch-${arch[1]}") + for suffix in "latest" "$major" "$major.$minor" "$major.$minor.$patch"; do + tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-${arch[1]}") + tags_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-chromium-${arch[1]}") + tags_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-libreoffice-${arch[1]}") + done if [ "$platform" = "linux/amd64" ]; then - tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:latest-cloudrun") - tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major-cloudrun") - tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor-cloudrun") - tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor.$patch-cloudrun") + for suffix in "latest" "$major" "$major.$minor" "$major.$minor.$patch"; do + tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-cloudrun") + tags_cloud_run_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-chromium-cloudrun") + tags_cloud_run_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-libreoffice-cloudrun") + done fi if [ "$platform" = "linux/amd64" ] || [ "$platform" = "linux/arm64" ]; then - tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:latest-aws-lambda-${arch[1]}") - tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major-aws-lambda-${arch[1]}") - tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor-aws-lambda-${arch[1]}") - tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$major.$minor.$patch-aws-lambda-${arch[1]}") + for suffix in "latest" "$major" "$major.$minor" "$major.$minor.$patch"; do + tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-aws-lambda-${arch[1]}") + tags_aws_lambda_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-chromium-aws-lambda-${arch[1]}") + tags_aws_lambda_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$suffix-libreoffice-aws-lambda-${arch[1]}") + done fi else echo echo "Non-semver version detected, fallback to $version" tags+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-${arch[1]}") + tags_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-chromium-${arch[1]}") + tags_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-libreoffice-${arch[1]}") + if [ "$platform" = "linux/amd64" ]; then tags_cloud_run+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-cloudrun") + tags_cloud_run_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-chromium-cloudrun") + tags_cloud_run_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-libreoffice-cloudrun") fi if [ "$platform" = "linux/amd64" ] || [ "$platform" = "linux/arm64" ]; then tags_aws_lambda+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-aws-lambda-${arch[1]}") + tags_aws_lambda_chromium+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-chromium-aws-lambda-${arch[1]}") + tags_aws_lambda_libreoffice+=("$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version-libreoffice-aws-lambda-${arch[1]}") fi fi tags_flags=() +tags_chromium_flags=() +tags_libreoffice_flags=() tags_cloud_run_flags=() +tags_cloud_run_chromium_flags=() +tags_cloud_run_libreoffice_flags=() tags_aws_lambda_flags=() +tags_aws_lambda_chromium_flags=() +tags_aws_lambda_libreoffice_flags=() echo "Will use the following tags:" for tag in "${tags[@]}"; do tags_flags+=("-t" "$tag") echo "- $tag" done +for tag in "${tags_chromium[@]}"; do + tags_chromium_flags+=("-t" "$tag") + echo "- $tag" +done +for tag in "${tags_libreoffice[@]}"; do + tags_libreoffice_flags+=("-t" "$tag") + echo "- $tag" +done for tag in "${tags_cloud_run[@]}"; do tags_cloud_run_flags+=("-t" "$tag") echo "- $tag" done +for tag in "${tags_cloud_run_chromium[@]}"; do + tags_cloud_run_chromium_flags+=("-t" "$tag") + echo "- $tag" +done +for tag in "${tags_cloud_run_libreoffice[@]}"; do + tags_cloud_run_libreoffice_flags+=("-t" "$tag") + echo "- $tag" +done for tag in "${tags_aws_lambda[@]}"; do tags_aws_lambda_flags+=("-t" "$tag") echo "- $tag" done +for tag in "${tags_aws_lambda_chromium[@]}"; do + tags_aws_lambda_chromium_flags+=("-t" "$tag") + echo "- $tag" +done +for tag in "${tags_aws_lambda_libreoffice[@]}"; do + tags_aws_lambda_libreoffice_flags+=("-t" "$tag") + echo "- $tag" +done echo # Build images. @@ -145,7 +191,9 @@ join() { no_arch_tag="$DOCKER_REGISTRY/$DOCKER_REPOSITORY:$version" +# Full variant. cmd="docker buildx build \ + --target gotenberg \ --build-arg GOTENBERG_VERSION=$version \ --platform $platform \ --load \ @@ -155,30 +203,102 @@ cmd="docker buildx build \ " run_cmd "$cmd" +# Chromium only variant. +cmd="docker buildx build \ + --target gotenberg-chromium \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_chromium_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT +" +run_cmd "$cmd" + +# LibreOffice only variant. +cmd="docker buildx build \ + --target gotenberg-libreoffice \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_libreoffice_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT +" +run_cmd "$cmd" + +# Cloud Run variants (amd64 only). if [ "$platform" = "linux/amd64" ]; then - cmd="docker build \ - --build-arg DOCKER_REGISTRY=$DOCKER_REGISTRY \ - --build-arg DOCKER_REPOSITORY=$DOCKER_REPOSITORY \ + cmd="docker buildx build \ + --target gotenberg-cloudrun \ --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ ${tags_cloud_run_flags[*]} \ - -f $DOCKERFILE_CLOUDRUN $DOCKER_BUILD_CONTEXT + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT + " + run_cmd "$cmd" + + cmd="docker buildx build \ + --target gotenberg-cloudrun-chromium \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_cloud_run_chromium_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT + " + run_cmd "$cmd" + + cmd="docker buildx build \ + --target gotenberg-cloudrun-libreoffice \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_cloud_run_libreoffice_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT " run_cmd "$cmd" fi +# AWS Lambda variants (amd64 + arm64 only). if [ "$platform" = "linux/amd64" ] || [ "$platform" = "linux/arm64" ]; then - cmd="docker build \ - --build-arg DOCKER_REGISTRY=$DOCKER_REGISTRY \ - --build-arg DOCKER_REPOSITORY=$DOCKER_REPOSITORY \ - --build-arg GOTENBERG_VERSION=$version \ - ${tags_aws_lambda_flags[*]} \ - -f $DOCKERFILE_AWS_LAMBDA $DOCKER_BUILD_CONTEXT + cmd="docker buildx build \ + --target gotenberg-aws-lambda \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_aws_lambda_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT + " + run_cmd "$cmd" + + cmd="docker buildx build \ + --target gotenberg-aws-lambda-chromium \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_aws_lambda_chromium_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT + " + run_cmd "$cmd" + + cmd="docker buildx build \ + --target gotenberg-aws-lambda-libreoffice \ + --build-arg GOTENBERG_VERSION=$version \ + --platform $platform \ + --load \ + ${tags_aws_lambda_libreoffice_flags[*]} \ + -f $DOCKERFILE $DOCKER_BUILD_CONTEXT " run_cmd "$cmd" fi echo "✅ Done!" echo "tags=$(join "," "${tags[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_chromium=$(join "," "${tags_chromium[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_libreoffice=$(join "," "${tags_libreoffice[@]}")" >> "$GITHUB_OUTPUT" echo "tags_cloud_run=$(join "," "${tags_cloud_run[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_cloud_run_chromium=$(join "," "${tags_cloud_run_chromium[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_cloud_run_libreoffice=$(join "," "${tags_cloud_run_libreoffice[@]}")" >> "$GITHUB_OUTPUT" echo "tags_aws_lambda=$(join "," "${tags_aws_lambda[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_aws_lambda_chromium=$(join "," "${tags_aws_lambda_chromium[@]}")" >> "$GITHUB_OUTPUT" +echo "tags_aws_lambda_libreoffice=$(join "," "${tags_aws_lambda_libreoffice[@]}")" >> "$GITHUB_OUTPUT" exit 0 diff --git a/.github/workflows/continuous-delivery.yml b/.github/workflows/continuous-delivery.yml index ad0bf86..e603da9 100644 --- a/.github/workflows/continuous-delivery.yml +++ b/.github/workflows/continuous-delivery.yml @@ -13,8 +13,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_chromium: ${{ steps.build_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -34,8 +40,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_chromium: ${{ steps.build_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -55,8 +67,14 @@ jobs: runs-on: ubuntu-24.04-ppc64le outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_chromium: ${{ steps.build_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -76,8 +94,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_chromium: ${{ steps.build_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -97,8 +121,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_chromium: ${{ steps.build_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -134,6 +164,22 @@ jobs: tags: "${{ needs.release_amd64.outputs.tags }},${{ needs.release_386.outputs.tags }},${{ needs.release_ppc64le.outputs.tags }},${{ needs.release_arm64.outputs.tags }},${{ needs.release_arm_v7.outputs.tags }}" alternate_registry: thecodingmachine + - name: Merge Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.release_amd64.outputs.tags_chromium }},${{ needs.release_386.outputs.tags_chromium }},${{ needs.release_ppc64le.outputs.tags_chromium }},${{ needs.release_arm64.outputs.tags_chromium }},${{ needs.release_arm_v7.outputs.tags_chromium }}" + alternate_registry: thecodingmachine + + - name: Merge LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.release_amd64.outputs.tags_libreoffice }},${{ needs.release_386.outputs.tags_libreoffice }},${{ needs.release_ppc64le.outputs.tags_libreoffice }},${{ needs.release_arm64.outputs.tags_libreoffice }},${{ needs.release_arm_v7.outputs.tags_libreoffice }}" + alternate_registry: thecodingmachine + - name: Merge AWS Lambda uses: ./.github/actions/merge with: @@ -142,9 +188,25 @@ jobs: tags: "${{ needs.release_amd64.outputs.tags_aws_lambda }},${{ needs.release_arm64.outputs.tags_aws_lambda }}" alternate_registry: thecodingmachine + - name: Merge AWS Lambda Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.release_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.release_arm64.outputs.tags_aws_lambda_chromium }}" + alternate_registry: thecodingmachine + + - name: Merge AWS Lambda LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.release_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.release_arm64.outputs.tags_aws_lambda_libreoffice }}" + alternate_registry: thecodingmachine + - name: Clean uses: ./.github/actions/clean with: docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} - tags: "${{ needs.release_amd64.outputs.tags }},${{ needs.release_386.outputs.tags }},${{ needs.release_ppc64le.outputs.tags }},${{ needs.release_arm64.outputs.tags }},${{ needs.release_arm_v7.outputs.tags }},${{ needs.release_amd64.outputs.tags_aws_lambda }},${{ needs.release_arm64.outputs.tags_aws_lambda }}" + tags: "${{ needs.release_amd64.outputs.tags }},${{ needs.release_386.outputs.tags }},${{ needs.release_ppc64le.outputs.tags }},${{ needs.release_arm64.outputs.tags }},${{ needs.release_arm_v7.outputs.tags }},${{ needs.release_amd64.outputs.tags_chromium }},${{ needs.release_386.outputs.tags_chromium }},${{ needs.release_ppc64le.outputs.tags_chromium }},${{ needs.release_arm64.outputs.tags_chromium }},${{ needs.release_arm_v7.outputs.tags_chromium }},${{ needs.release_amd64.outputs.tags_libreoffice }},${{ needs.release_386.outputs.tags_libreoffice }},${{ needs.release_ppc64le.outputs.tags_libreoffice }},${{ needs.release_arm64.outputs.tags_libreoffice }},${{ needs.release_arm_v7.outputs.tags_libreoffice }},${{ needs.release_amd64.outputs.tags_aws_lambda }},${{ needs.release_arm64.outputs.tags_aws_lambda }},${{ needs.release_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.release_arm64.outputs.tags_aws_lambda_chromium }},${{ needs.release_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.release_arm64.outputs.tags_aws_lambda_libreoffice }}" diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 3118205..d1f7ae5 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -77,8 +77,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -101,8 +107,14 @@ jobs: runs-on: ubuntu-24.04-ppc64le outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -125,8 +137,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -149,8 +167,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -173,8 +197,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -232,6 +262,20 @@ jobs: docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} tags: "${{ needs.snapshot_amd64.outputs.tags }},${{ needs.snapshot_386.outputs.tags }},${{ needs.snapshot_ppc64le.outputs.tags }},${{ needs.snapshot_arm64.outputs.tags }},${{ needs.snapshot_arm_v7.outputs.tags }}" + - name: Merge Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.snapshot_amd64.outputs.tags_chromium }},${{ needs.snapshot_386.outputs.tags_chromium }},${{ needs.snapshot_ppc64le.outputs.tags_chromium }},${{ needs.snapshot_arm64.outputs.tags_chromium }},${{ needs.snapshot_arm_v7.outputs.tags_chromium }}" + + - name: Merge LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.snapshot_amd64.outputs.tags_libreoffice }},${{ needs.snapshot_386.outputs.tags_libreoffice }},${{ needs.snapshot_ppc64le.outputs.tags_libreoffice }},${{ needs.snapshot_arm64.outputs.tags_libreoffice }},${{ needs.snapshot_arm_v7.outputs.tags_libreoffice }}" + - name: Merge AWS Lambda uses: ./.github/actions/merge with: @@ -239,12 +283,26 @@ jobs: docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} tags: "${{ needs.snapshot_amd64.outputs.tags_aws_lambda }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda }}" + - name: Merge AWS Lambda Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.snapshot_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda_chromium }}" + + - name: Merge AWS Lambda LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.snapshot_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda_libreoffice }}" + - name: Clean uses: ./.github/actions/clean with: docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} - tags: "${{ needs.snapshot_amd64.outputs.tags }},${{ needs.snapshot_386.outputs.tags }},${{ needs.snapshot_ppc64le.outputs.tags }},${{ needs.snapshot_arm64.outputs.tags }},${{ needs.snapshot_arm_v7.outputs.tags }},${{ needs.snapshot_amd64.outputs.tags_aws_lambda }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda }}" + tags: "${{ needs.snapshot_amd64.outputs.tags }},${{ needs.snapshot_386.outputs.tags }},${{ needs.snapshot_ppc64le.outputs.tags }},${{ needs.snapshot_arm64.outputs.tags }},${{ needs.snapshot_arm_v7.outputs.tags }},${{ needs.snapshot_amd64.outputs.tags_chromium }},${{ needs.snapshot_386.outputs.tags_chromium }},${{ needs.snapshot_ppc64le.outputs.tags_chromium }},${{ needs.snapshot_arm64.outputs.tags_chromium }},${{ needs.snapshot_arm_v7.outputs.tags_chromium }},${{ needs.snapshot_amd64.outputs.tags_libreoffice }},${{ needs.snapshot_386.outputs.tags_libreoffice }},${{ needs.snapshot_ppc64le.outputs.tags_libreoffice }},${{ needs.snapshot_arm64.outputs.tags_libreoffice }},${{ needs.snapshot_arm_v7.outputs.tags_libreoffice }},${{ needs.snapshot_amd64.outputs.tags_aws_lambda }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda }},${{ needs.snapshot_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda_chromium }},${{ needs.snapshot_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda_libreoffice }}" edge_amd64: if: github.event_name == 'push' && github.ref == 'refs/heads/main' @@ -254,8 +312,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -277,8 +341,14 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -300,8 +370,14 @@ jobs: runs-on: ubuntu-24.04-ppc64le outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -323,8 +399,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -346,8 +428,14 @@ jobs: runs-on: ubuntu-24.04-arm outputs: tags: ${{ steps.build_test_push.outputs.tags }} + tags_chromium: ${{ steps.build_test_push.outputs.tags_chromium }} + tags_libreoffice: ${{ steps.build_test_push.outputs.tags_libreoffice }} tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_cloud_run_chromium: ${{ steps.build_test_push.outputs.tags_cloud_run_chromium }} + tags_cloud_run_libreoffice: ${{ steps.build_test_push.outputs.tags_cloud_run_libreoffice }} tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + tags_aws_lambda_chromium: ${{ steps.build_test_push.outputs.tags_aws_lambda_chromium }} + tags_aws_lambda_libreoffice: ${{ steps.build_test_push.outputs.tags_aws_lambda_libreoffice }} steps: - name: Checkout source code uses: actions/checkout@v6 @@ -382,6 +470,22 @@ jobs: tags: "${{ needs.edge_amd64.outputs.tags }},${{ needs.edge_386.outputs.tags }},${{ needs.edge_ppc64le.outputs.tags }},${{ needs.edge_arm64.outputs.tags }},${{ needs.edge_arm_v7.outputs.tags }}" alternate_registry: thecodingmachine + - name: Merge Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.edge_amd64.outputs.tags_chromium }},${{ needs.edge_386.outputs.tags_chromium }},${{ needs.edge_ppc64le.outputs.tags_chromium }},${{ needs.edge_arm64.outputs.tags_chromium }},${{ needs.edge_arm_v7.outputs.tags_chromium }}" + alternate_registry: thecodingmachine + + - name: Merge LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.edge_amd64.outputs.tags_libreoffice }},${{ needs.edge_386.outputs.tags_libreoffice }},${{ needs.edge_ppc64le.outputs.tags_libreoffice }},${{ needs.edge_arm64.outputs.tags_libreoffice }},${{ needs.edge_arm_v7.outputs.tags_libreoffice }}" + alternate_registry: thecodingmachine + - name: Merge AWS Lambda uses: ./.github/actions/merge with: @@ -390,9 +494,25 @@ jobs: tags: "${{ needs.edge_amd64.outputs.tags_aws_lambda }},${{ needs.edge_arm64.outputs.tags_aws_lambda }}" alternate_registry: thecodingmachine + - name: Merge AWS Lambda Chromium + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.edge_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.edge_arm64.outputs.tags_aws_lambda_chromium }}" + alternate_registry: thecodingmachine + + - name: Merge AWS Lambda LibreOffice + uses: ./.github/actions/merge + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + tags: "${{ needs.edge_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.edge_arm64.outputs.tags_aws_lambda_libreoffice }}" + alternate_registry: thecodingmachine + - name: Clean uses: ./.github/actions/clean with: docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} - tags: "${{ needs.edge_amd64.outputs.tags }},${{ needs.edge_386.outputs.tags }},${{ needs.edge_ppc64le.outputs.tags }},${{ needs.edge_arm64.outputs.tags }},${{ needs.edge_arm_v7.outputs.tags }},${{ needs.edge_amd64.outputs.tags_aws_lambda }},${{ needs.edge_arm64.outputs.tags_aws_lambda }}" + tags: "${{ needs.edge_amd64.outputs.tags }},${{ needs.edge_386.outputs.tags }},${{ needs.edge_ppc64le.outputs.tags }},${{ needs.edge_arm64.outputs.tags }},${{ needs.edge_arm_v7.outputs.tags }},${{ needs.edge_amd64.outputs.tags_chromium }},${{ needs.edge_386.outputs.tags_chromium }},${{ needs.edge_ppc64le.outputs.tags_chromium }},${{ needs.edge_arm64.outputs.tags_chromium }},${{ needs.edge_arm_v7.outputs.tags_chromium }},${{ needs.edge_amd64.outputs.tags_libreoffice }},${{ needs.edge_386.outputs.tags_libreoffice }},${{ needs.edge_ppc64le.outputs.tags_libreoffice }},${{ needs.edge_arm64.outputs.tags_libreoffice }},${{ needs.edge_arm_v7.outputs.tags_libreoffice }},${{ needs.edge_amd64.outputs.tags_aws_lambda }},${{ needs.edge_arm64.outputs.tags_aws_lambda }},${{ needs.edge_amd64.outputs.tags_aws_lambda_chromium }},${{ needs.edge_arm64.outputs.tags_aws_lambda_chromium }},${{ needs.edge_amd64.outputs.tags_aws_lambda_libreoffice }},${{ needs.edge_arm64.outputs.tags_aws_lambda_libreoffice }}"