From b8fd40b659f12d608fbad128c504e028d6a9281a Mon Sep 17 00:00:00 2001 From: Sean T Allen Date: Thu, 18 Apr 2024 09:12:02 -0400 Subject: [PATCH] Add OpenSSL 3.3 builder (#75) --- .github/workflows/linux-builder-update.yml | 31 +++++++++++++++++++ .github/workflows/pr.yml | 8 +++++ .../Dockerfile | 22 +++++++++++++ .../README.md | 3 ++ .../build-and-push.bash | 28 +++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 x86-64-unknown-linux-builder-with-openssl_3.3.0/Dockerfile create mode 100644 x86-64-unknown-linux-builder-with-openssl_3.3.0/README.md create mode 100644 x86-64-unknown-linux-builder-with-openssl_3.3.0/build-and-push.bash diff --git a/.github/workflows/linux-builder-update.yml b/.github/workflows/linux-builder-update.yml index 2efb64b..2bd1aec 100644 --- a/.github/workflows/linux-builder-update.yml +++ b/.github/workflows/linux-builder-update.yml @@ -236,6 +236,35 @@ jobs: topic: ${{ github.repository }} scheduled job failure content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. + x86-64-unknown-linux-builder-with-openssl_3_3_0: + needs: + - x86-64-unknown-linux-builder + + name: Update x86-64-unknown-linux-builder-with-openssl_3.3.0 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.1 + - name: Login to GitHub Container Registry + # v2.2.0 + uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push + run: bash x86-64-unknown-linux-builder-with-openssl_3.3.0/build-and-push.bash + - name: Send alert on failure + if: ${{ failure() }} + uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 + with: + api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} + email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} + organization-url: 'https://ponylang.zulipchat.com/' + to: notifications + type: stream + topic: ${{ github.repository }} scheduled job failure + content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. + x86-64-unknown-linux-builder-with-pcre: needs: - x86-64-unknown-linux-builder @@ -275,6 +304,7 @@ jobs: - x86-64-unknown-linux-builder-with-openssl_3_1_0 - x86-64-unknown-linux-builder-with-openssl_3_1_3 - x86-64-unknown-linux-builder-with-openssl_3_2_0 + - x86-64-unknown-linux-builder-with-openssl_3_3_0 - x86-64-unknown-linux-builder-with-pcre name: Send 'shared-docker-linux-builders-updated' event @@ -349,6 +379,7 @@ jobs: - shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_3.1.0 - shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_3.1.3 - shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_3.2.0 + - shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_3.3.0 - shared-docker-ci-x86-64-unknown-linux-builder-with-pcre steps: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c204055..65269ec 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -110,6 +110,14 @@ jobs: - name: Docker build run: "docker build --pull --file=x86-64-unknown-linux-builder-with-openssl_3.2.0/Dockerfile ." + validate-x86-64-unknown-linux-builder-with-openssl_3_3_0-image-builds: + name: Validate x86-64-unknown-linux-builder-with-openssl_3.3.0 Docker image builds + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.1 + - name: Docker build + run: "docker build --pull --file=x86-64-unknown-linux-builder-with-openssl_3.3.0/Dockerfile ." + validate-x86-64-unknown-linux-builder-with-pcre-image-builds: name: Validate x86-64-unknown-linux-builder-with-pcre Docker image builds runs-on: ubuntu-latest diff --git a/x86-64-unknown-linux-builder-with-openssl_3.3.0/Dockerfile b/x86-64-unknown-linux-builder-with-openssl_3.3.0/Dockerfile new file mode 100644 index 0000000..707a160 --- /dev/null +++ b/x86-64-unknown-linux-builder-with-openssl_3.3.0/Dockerfile @@ -0,0 +1,22 @@ +ARG FROM_TAG=release +FROM ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder:${FROM_TAG} + +RUN apk add --update --no-cache \ + clang-dev \ + linux-headers \ + perl + +RUN cd /tmp && \ + wget https://www.openssl.org/source/openssl-3.3.0.tar.gz && \ + tar xf openssl-3.3.0.tar.gz && \ + cd openssl-3.3.0 && \ + ./Configure --api=3.0.0 no-shared linux-x86_64 enable-rc5 enable-md2 && \ + make && \ + make install && \ + cd /tmp && \ + rm -rf openssl-3.3.0 + +# For some reason, even though lib64 is in the linker search path, the +# libraries when installed there can't be found +RUN cp /usr/local/lib64/libssl.a /usr/local/lib/ && \ + cp /usr/local/lib64/libcrypto.a /usr/local/lib diff --git a/x86-64-unknown-linux-builder-with-openssl_3.3.0/README.md b/x86-64-unknown-linux-builder-with-openssl_3.3.0/README.md new file mode 100644 index 0000000..a78e06c --- /dev/null +++ b/x86-64-unknown-linux-builder-with-openssl_3.3.0/README.md @@ -0,0 +1,3 @@ +# x86-64-unknown-linux-builder-with-openssl_3.3.0 + +The x86-64-unknown-linux-builder with OpenSSL 3.3.0 implementation installed as well. Rebuilt daily. diff --git a/x86-64-unknown-linux-builder-with-openssl_3.3.0/build-and-push.bash b/x86-64-unknown-linux-builder-with-openssl_3.3.0/build-and-push.bash new file mode 100644 index 0000000..95178ac --- /dev/null +++ b/x86-64-unknown-linux-builder-with-openssl_3.3.0/build-and-push.bash @@ -0,0 +1,28 @@ +#!/bin/bash + +set -o errexit +set -o nounset + +# +# *** You should already be logged in to GitHub Container Registry when you run +# this *** +# +DOCKERFILE_DIR="$(dirname "$0")" + +## GitHub Container Registry + +NAME="ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder-with-openssl_3.3.0" + +# built from x86-64-unknown-linux-builder release tag +FROM_TAG=release +TAG_AS=release +docker build --pull --build-arg FROM_TAG="${FROM_TAG}" \ + -t "${NAME}:${TAG_AS}" "${DOCKERFILE_DIR}" +docker push "${NAME}:${TAG_AS}" + +# built from x86-64-unknown-linux-builder latest tag +FROM_TAG=latest +TAG_AS=latest +docker build --pull --build-arg FROM_TAG="${FROM_TAG}" \ + -t "${NAME}:${TAG_AS}" "${DOCKERFILE_DIR}" +docker push "${NAME}:${TAG_AS}"