chore(ci): package lua-curl (#1557) (#1562) (#1569) #59
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: lua-curl | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
workflow_dispatch: | |
pull_request: | |
paths: | |
- lua-curl/** | |
push: | |
branches: | |
- develop | |
- dev-[2-9][0-9].[0-9][0-9].x | |
- master | |
- "[2-9][0-9].[0-9][0-9].x" | |
paths: | |
- lua-curl/** | |
env: | |
major_version: 0.3 | |
minor_version: 13 | |
release: 10 # 10 for openssl 1.1.1 / 20 for openssl system | |
jobs: | |
get-version: | |
uses: ./.github/workflows/get-version.yml | |
package: | |
needs: [get-version] | |
if: ${{ needs.get-version.outputs.stability != 'stable' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- package_extension: rpm | |
image: packaging-stream-connectors-nfpm-alma8 | |
distrib: el8 | |
lua_version: 5.3 | |
runner: ubuntu-24.04 | |
arch: amd64 | |
- package_extension: deb | |
image: packaging-stream-connectors-nfpm-bullseye | |
distrib: bullseye | |
lua_version: 5.3 | |
runner: ubuntu-24.04 | |
arch: amd64 | |
runs-on: ${{ matrix.runner }} | |
container: | |
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest | |
credentials: | |
username: ${{ secrets.DOCKER_REGISTRY_ID }} | |
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }} | |
name: package ${{ matrix.distrib }} ${{ matrix.arch }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Checkout sources of lua-curl | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
repository: Lua-cURL/Lua-cURLv3 | |
path: lua-curl-src | |
ref: v${{ env.major_version }}.${{ env.minor_version }} | |
- name: Compile lua-curl and prepare packaging | |
run: | | |
if [ "${{ matrix.package_extension }}" == "rpm" ]; then | |
dnf install -y dnf-plugins-core | |
dnf config-manager --set-enabled powertools | |
dnf install -y make cmake gcc openssl openssl-devel libcurl-devel lua lua-devel python3-pip cpanminus | |
else | |
apt-get update | |
apt-get install -y make cmake gcc openssl libssl-dev libcurl4-openssl-dev lua${{ matrix.lua_version }} liblua${{ matrix.lua_version }} liblua${{ matrix.lua_version }}-dev python3-pip cpanminus | |
fi | |
cpanm -v \ | |
IPC::Cmd \ | |
Digest::SHA \ | |
Thread::Queue \ | |
IO::Socket::SSL \ | |
File::Copy \ | |
File::Compare | |
cd lua-curl-src | |
pip3 install conan==2.5.0 | |
conan profile detect | |
cat <<'EOF' >> conanfile.txt | |
[requires] | |
libcurl/8.0.1 | |
openssl/1.1.1t | |
zlib/1.2.13 | |
[generators] | |
CMakeToolchain | |
[options] | |
libcurl/*:with_ca_bundle=/etc/ssl/certs/ca-bundle.crt | |
libcurl/*:with_ca_fallback=False | |
libcurl/*:with_ca_path=/etc/ssl/certs/ | |
EOF | |
conan install . --build=missing --deployer=full_deploy | |
if [ "${{ matrix.package_extension }}" == "rpm" ]; then | |
sed -i "s#^CURL_LIBS.*#CURL_LIBS=-Lfull_deploy/host/libcurl/8.0.1/Release/x86_64/lib -l:libcurl.a -Lfull_deploy/host/openssl/1.1.1t/Release/x86_64/lib -l:libssl.a -l:libcrypto.a -Lfull_deploy/host/zlib/1.2.13/Release/x86_64/lib -l:libz.a -lpthread#" Makefile | |
else | |
sed -i "s#^CURL_LIBS.*#CURL_LIBS=-Lfull_deploy/host/libcurl/8.0.1/Release/x86_64/lib -l:libcurl.a -Lfull_deploy/host/openssl/1.1.1t/Release/x86_64/lib -l:libssl.a -l:libcrypto.a -Lfull_deploy/host/zlib/1.2.13/Release/x86_64/lib -l:libz.a -lpthread -I/usr/include/lua5.3#" Makefile | |
fi | |
make | |
cd .. | |
sed -i "s/@luaver@/${{ matrix.lua_version }}/g" lua-curl/packaging/lua-curl.yaml | |
shell: bash | |
- name: Package | |
uses: ./.github/actions/package | |
with: | |
nfpm_file_pattern: "lua-curl/packaging/lua-curl.yaml" | |
distrib: ${{ matrix.distrib }} | |
package_extension: ${{ matrix.package_extension }} | |
major_version: ${{ env.major_version }} | |
minor_version: ${{ env.minor_version }} | |
release: ${{ env.release }} | |
arch: ${{ matrix.arch }} | |
commit_hash: ${{ github.sha }} | |
cache_key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-lua-curl-${{ matrix.distrib }}-${{ matrix.arch }} | |
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }} | |
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }} | |
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }} | |
stability: ${{ needs.get-version.outputs.stability }} | |
deliver-rpm: | |
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }} | |
needs: [get-version, package] | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
include: | |
- distrib: el8 | |
arch: amd64 | |
name: deliver ${{ matrix.distrib }} ${{ matrix.arch }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Publish RPM packages | |
uses: ./.github/actions/rpm-delivery | |
with: | |
module_name: lua-curl | |
distrib: ${{ matrix.distrib }} | |
version: ${{ needs.get-version.outputs.major_version }} | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-lua-curl-${{ matrix.distrib }}-${{ matrix.arch }} | |
stability: ${{ needs.get-version.outputs.stability }} | |
release_type: ${{ needs.get-version.outputs.release_type }} | |
release_cloud: ${{ needs.get-version.outputs.release_cloud }} | |
deliver-deb: | |
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }} | |
needs: [get-version, package] | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
include: | |
- distrib: bullseye | |
arch: amd64 | |
name: deliver ${{ matrix.distrib }} ${{ matrix.arch }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Publish DEB packages | |
uses: ./.github/actions/deb-delivery | |
with: | |
module_name: lua-curl | |
distrib: ${{ matrix.distrib }} | |
version: ${{ needs.get-version.outputs.major_version }} | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
cache_key: ${{ github.sha }}-${{ github.run_id }}-deb-lua-curl-${{ matrix.distrib }}-${{ matrix.arch }} | |
stability: ${{ needs.get-version.outputs.stability }} | |
release_type: ${{ needs.get-version.outputs.release_type }} | |
release_cloud: ${{ needs.get-version.outputs.release_cloud }} | |
promote: | |
needs: [get-version] | |
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) && github.event_name != 'workflow_dispatch' }} | |
runs-on: [self-hosted, common] | |
strategy: | |
matrix: | |
distrib: [el8, bullseye] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Promote ${{ matrix.distrib }} to stable | |
uses: ./.github/actions/promote-to-stable | |
with: | |
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
module_name: lua-curl | |
distrib: ${{ matrix.distrib }} | |
major_version: ${{ needs.get-version.outputs.major_version }} | |
stability: ${{ needs.get-version.outputs.stability }} | |
repository_name: standard | |
github_ref_name: ${{ github.ref_name }} | |
release_type: ${{ needs.get-version.outputs.release_type }} | |
release_cloud: ${{ needs.get-version.outputs.release_cloud }} |