diff --git a/.github/actions/build-test-push/action.yml b/.github/actions/build-test-push/action.yml index e04ec281..5167de4b 100644 --- a/.github/actions/build-test-push/action.yml +++ b/.github/actions/build-test-push/action.yml @@ -14,7 +14,7 @@ inputs: description: The Docker Hub password required: true platform: - description: linux/amd64, linux/386, linux/arm64, linux/arm/v7 + description: linux/amd64, linux/ppc64le, linux/386, linux/arm64, linux/arm/v7 required: true version: description: Gotenberg version diff --git a/.github/actions/merge/merge.sh b/.github/actions/merge/merge.sh index ef4c0afe..ce405fbe 100755 --- a/.github/actions/merge/merge.sh +++ b/.github/actions/merge/merge.sh @@ -56,6 +56,7 @@ declare -A merge_map for tag in "${tags_to_merge[@]}"; do target_tag="${tag//-amd64/}" + target_tag="${target_tag//-ppc64le/}" target_tag="${target_tag//-arm64/}" target_tag="${target_tag//-arm/}" target_tag="${target_tag//-386/}" diff --git a/.github/workflows/continuous-delivery.yml b/.github/workflows/continuous-delivery.yml index 813be77f..1726217c 100644 --- a/.github/workflows/continuous-delivery.yml +++ b/.github/workflows/continuous-delivery.yml @@ -34,6 +34,8 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.build_push.outputs.tags }} + tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} steps: - name: Checkout source code uses: actions/checkout@v5 @@ -48,6 +50,27 @@ jobs: platform: linux/386 skip_integrations_tests: true + release_ppc64le: + name: Release linux/ppc64le + runs-on: ubuntu-24.04-ppc64le + outputs: + tags: ${{ steps.build_push.outputs.tags }} + tags_cloud_run: ${{ steps.build_push.outputs.tags_cloud_run }} + tags_aws_lambda: ${{ steps.build_push.outputs.tags_aws_lambda }} + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Build and push + id: build_push + uses: ./.github/actions/build-test-push + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + version: ${{ github.event.release.tag_name }} + platform: linux/ppc64le + skip_integrations_tests: true + release_arm64: name: Release linux/arm64 runs-on: ubuntu-24.04-arm @@ -94,6 +117,7 @@ jobs: needs: - release_amd64 - release_386 + - release_ppc64le - release_arm64 - release_arm_v7 name: Merge and clean release tags @@ -107,7 +131,7 @@ jobs: 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_arm64.outputs.tags }},${{ needs.release_arm_v7.outputs.tags }}" + 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 AWS Lambda @@ -123,4 +147,4 @@ jobs: 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_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_aws_lambda }},${{ needs.release_arm64.outputs.tags_aws_lambda }}" diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 03e15207..65269629 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -93,6 +93,30 @@ jobs: platform: linux/amd64 alternate_repository: snapshot + snapshot_ppc64le: + if: github.event_name == 'pull_request' + needs: + - test-unit + name: Snapshot linux/ppc64le + runs-on: ubuntu-24.04-ppc64le + outputs: + tags: ${{ steps.build_test_push.outputs.tags }} + tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Build, test and push + id: build_test_push + uses: ./.github/actions/build-test-push + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + version: pr-${{ github.event.pull_request.number }} + platform: linux/ppc64le + alternate_repository: snapshot + snapshot_386: if: github.event_name == 'pull_request' needs: @@ -169,6 +193,7 @@ jobs: needs: - snapshot_amd64 - snapshot_386 + - snapshot_ppc64le - snapshot_arm64 - snapshot_arm_v7 name: Secrets access check @@ -191,6 +216,7 @@ jobs: - merge_clean_snapshot_guard - snapshot_amd64 - snapshot_386 + - snapshot_ppc64le - snapshot_arm64 - snapshot_arm_v7 name: Merge and clean snapshot tags @@ -204,7 +230,7 @@ jobs: 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_arm64.outputs.tags }},${{ needs.snapshot_arm_v7.outputs.tags }}" + 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 AWS Lambda uses: ./.github/actions/merge @@ -218,7 +244,7 @@ jobs: 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_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_aws_lambda }},${{ needs.snapshot_arm64.outputs.tags_aws_lambda }}" edge_amd64: if: github.event_name == 'push' && github.ref == 'refs/heads/main' @@ -266,6 +292,29 @@ jobs: version: edge platform: linux/386 + edge_ppc64le: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + needs: + - test-unit + name: Edge linux/ppc64le + runs-on: ubuntu-24.04-ppc64le + outputs: + tags: ${{ steps.build_test_push.outputs.tags }} + tags_cloud_run: ${{ steps.build_test_push.outputs.tags_cloud_run }} + tags_aws_lambda: ${{ steps.build_test_push.outputs.tags_aws_lambda }} + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Build, test and push + id: build_test_push + uses: ./.github/actions/build-test-push + with: + docker_hub_username: ${{ secrets.DOCKERHUB_USERNAME }} + docker_hub_password: ${{ secrets.DOCKERHUB_TOKEN }} + version: edge + platform: linux/ppc64le + edge_arm64: if: github.event_name == 'push' && github.ref == 'refs/heads/main' needs: @@ -316,6 +365,7 @@ jobs: needs: - edge_amd64 - edge_386 + - edge_ppc64le - edge_arm64 - edge_arm_v7 name: Merge and clean edge tags @@ -329,7 +379,7 @@ jobs: 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_arm64.outputs.tags }},${{ needs.edge_arm_v7.outputs.tags }}" + 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 AWS Lambda @@ -345,4 +395,4 @@ jobs: 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_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_aws_lambda }},${{ needs.edge_arm64.outputs.tags_aws_lambda }}" diff --git a/Makefile b/Makefile index 44ed3d9d..1921c790 100644 --- a/Makefile +++ b/Makefile @@ -163,7 +163,7 @@ NO_CONCURRENCY=false .PHONY: test-integration test-integration: ## Run integration tests - go test -timeout 20m -tags=integration -v github.com/gotenberg/gotenberg/v8/test/integration -args \ + go test -timeout 40m -tags=integration -v github.com/gotenberg/gotenberg/v8/test/integration -args \ --gotenberg-docker-repository=$(DOCKER_REPOSITORY) \ --gotenberg-version=$(GOTENBERG_VERSION) \ --gotenberg-container-platform=$(PLATFORM) \