mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-08 00:22:14 +01:00
131 lines
5.2 KiB
YAML
131 lines
5.2 KiB
YAML
name: Build Test Push
|
|
description: Build, test and push Docker images for a given platform
|
|
author: Julien Neuhart
|
|
|
|
inputs:
|
|
github_token:
|
|
description: The GitHub token
|
|
required: true
|
|
default: ${{ github.token }}
|
|
docker_hub_username:
|
|
description: The Docker Hub username
|
|
required: true
|
|
docker_hub_password:
|
|
description: The Docker Hub password
|
|
required: true
|
|
platform:
|
|
description: linux/amd64, linux/ppc64le, linux/386, linux/arm64, linux/arm/v7
|
|
required: true
|
|
version:
|
|
description: Gotenberg version
|
|
required: true
|
|
skip_integrations_tests:
|
|
description: Define whether to skip integration testing
|
|
default: false
|
|
alternate_repository:
|
|
description: Alternate repository to push the tags to
|
|
dry_run:
|
|
description: Dry run this action
|
|
|
|
outputs:
|
|
tags:
|
|
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 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 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
|
|
steps:
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Check out code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Log in to Docker Hub
|
|
if: inputs.docker_hub_username != ''
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ inputs.docker_hub_username }}
|
|
password: ${{ inputs.docker_hub_password }}
|
|
|
|
- name: Build ${{ inputs.platform }}
|
|
id: build
|
|
shell: bash
|
|
env:
|
|
INPUT_VERSION: ${{ inputs.version }}
|
|
INPUT_PLATFORM: ${{ inputs.platform }}
|
|
INPUT_ALTERNATE_REPOSITORY: ${{ inputs.alternate_repository }}
|
|
INPUT_DRY_RUN: ${{ inputs.dry_run }}
|
|
run: |
|
|
.github/actions/build-test-push/build.sh \
|
|
--version "$INPUT_VERSION" \
|
|
--platform "$INPUT_PLATFORM" \
|
|
--alternate-repository "$INPUT_ALTERNATE_REPOSITORY" \
|
|
--dry-run "$INPUT_DRY_RUN"
|
|
|
|
- name: Run integration tests
|
|
if: inputs.skip_integrations_tests != 'true'
|
|
shell: bash
|
|
env:
|
|
INPUT_VERSION: ${{ inputs.version }}
|
|
INPUT_PLATFORM: ${{ inputs.platform }}
|
|
INPUT_ALTERNATE_REPOSITORY: ${{ inputs.alternate_repository }}
|
|
INPUT_DRY_RUN: ${{ inputs.dry_run }}
|
|
run: |
|
|
.github/actions/build-test-push/test.sh \
|
|
--version "$INPUT_VERSION" \
|
|
--platform "$INPUT_PLATFORM" \
|
|
--alternate-repository "$INPUT_ALTERNATE_REPOSITORY" \
|
|
--dry-run "$INPUT_DRY_RUN"
|
|
|
|
- name: Push
|
|
if: inputs.docker_hub_username != ''
|
|
shell: bash
|
|
env:
|
|
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 \
|
|
--tags "$INPUT_TAGS" \
|
|
--dry-run "$INPUT_DRY_RUN"
|
|
|
|
- name: Outputs
|
|
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 }}"
|