Skip to content

Commit 8506910

Browse files
authored
enh(stream-connectors-lib): package lua-sql-mysql for el8 and el9 (#286)
* enh(stream-connectors-lib): package lua-sql-mysql for el8 and el9 * add the ability to upload the packages as artifacts by adding the label "upload-artifacts" to the PR Refs: CTOR-1529
1 parent 1aebda2 commit 8506910

3 files changed

Lines changed: 162 additions & 3 deletions

File tree

.github/actions/package-nfpm/action.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ inputs:
3838
stability:
3939
description: "Branch stability (stable, testing, unstable, canary)"
4040
required: true
41+
artifact_name:
42+
description: The name of the uploaded artifact
43+
required: false
4144

4245
runs:
4346
using: composite
@@ -98,11 +101,22 @@ runs:
98101
path: ./*.${{ inputs.package_extension }}
99102
key: ${{ inputs.cache_key }}
100103

101-
# Update if condition to true to get packages as artifacts
102-
- if: ${{ false }}
104+
# Add to your PR the label upload-artifacts to get packages as artifacts
105+
- if: ${{ contains(github.event.pull_request.labels.*.name, 'upload-artifacts') }}
106+
name: Get artifact name
107+
id: get-artifact-name
108+
run: |
109+
if [ -z "${{ inputs.artifact_name }}" ]; then
110+
echo "artifact_name=packages-${{ inputs.distrib }}" >> $GITHUB_OUTPUT
111+
else
112+
echo "artifact_name=${{ inputs.artifact_name }}" >> $GITHUB_OUTPUT
113+
fi
114+
shell: bash
115+
116+
- if: ${{ contains(github.event.pull_request.labels.*.name, 'upload-artifacts') }}
103117
name: Upload package artifacts
104118
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
105119
with:
106-
name: packages-${{ inputs.distrib }}
120+
name: ${{ steps.get-artifact-name.outputs.artifact_name }}
107121
path: ./*.${{ inputs.package_extension}}
108122
retention-days: 1
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: lua-sql-mysql
2+
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
5+
cancel-in-progress: true
6+
7+
on:
8+
workflow_dispatch:
9+
pull_request:
10+
paths:
11+
- dependencies/lua-sql-mysql/**
12+
push:
13+
branches:
14+
- develop
15+
- master
16+
paths:
17+
- dependencies/lua-sql-mysql/**
18+
19+
jobs:
20+
get-environment:
21+
uses: ./.github/workflows/get-environment.yml
22+
23+
package:
24+
needs: [get-environment]
25+
26+
strategy:
27+
fail-fast: false
28+
matrix:
29+
distrib: [el8, el9]
30+
include:
31+
- image: packaging-stream-connectors-nfpm-alma8
32+
distrib: el8
33+
lua_version: 5.3
34+
- image: packaging-stream-connectors-nfpm-alma9
35+
distrib: el9
36+
lua_version: 5.4
37+
38+
runs-on: ubuntu-24.04
39+
40+
container:
41+
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
42+
credentials:
43+
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
44+
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
45+
46+
name: package ${{ matrix.distrib }}
47+
48+
steps:
49+
- name: Checkout sources
50+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
51+
52+
- name: Checkout luasql sources
53+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
54+
with:
55+
repository: "lunarmodules/luasql"
56+
path: "lua-sql-src"
57+
ref: "2.6.0"
58+
59+
- name: Prepare packaging of lua-sql-mysql
60+
run: |
61+
dnf install -y dnf-plugins-core
62+
if [ "${{ matrix.distrib }}" == "el8" ]; then
63+
dnf config-manager --set-enabled powertools
64+
else
65+
dnf config-manager --set-enabled crb
66+
fi
67+
dnf install -y make gcc lua lua-devel mysql mysql-devel
68+
cd lua-sql-src
69+
make mysql DRIVER_LIBS_mysql="-L/usr/lib64/mysql -lmysqlclient" DRIVER_INCS_mysql=-I/usr/include/mysql LUA_SYS_VER=${{ matrix.lua_version }}
70+
cd ..
71+
72+
sed -i "s/@luaver@/${{ matrix.lua_version }}/g" dependencies/lua-sql-mysql/packaging/lua-sql-mysql.yaml
73+
shell: bash
74+
75+
- name: Package
76+
uses: ./.github/actions/package-nfpm
77+
with:
78+
nfpm_file_pattern: "dependencies/lua-sql-mysql/packaging/*.yaml"
79+
distrib: ${{ matrix.distrib }}
80+
package_extension: rpm
81+
arch: amd64
82+
version: "2.6.0"
83+
release: "1"
84+
commit_hash: ${{ github.sha }}
85+
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-lua-sql-mysql-${{ matrix.distrib }}
86+
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }}
87+
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }}
88+
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }}
89+
stability: ${{ needs.get-environment.outputs.stability }}
90+
91+
deliver-rpm:
92+
if: ${{ contains(fromJson('["unstable", "testing", "stable"]'), needs.get-environment.outputs.stability) }}
93+
needs: [get-environment, package]
94+
runs-on: ubuntu-24.04
95+
strategy:
96+
matrix:
97+
distrib: [el8, el9]
98+
name: deliver ${{ matrix.distrib }}
99+
100+
steps:
101+
- name: Checkout sources
102+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
103+
104+
- name: Publish RPM packages
105+
uses: ./.github/actions/rpm-delivery
106+
with:
107+
module_name: lua-sql-mysql
108+
distrib: ${{ matrix.distrib }}
109+
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
110+
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-lua-sql-mysql-${{ matrix.distrib }}
111+
stability: ${{ needs.get-environment.outputs.stability }}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: "lua-sql-mysql"
2+
arch: "${ARCH}"
3+
platform: "linux"
4+
version_schema: "none"
5+
version: "${VERSION}"
6+
release: "${RELEASE}${DIST}"
7+
section: "default"
8+
priority: "optional"
9+
maintainer: "Centreon <[email protected]>"
10+
description: |
11+
LuaSQL MySQL library
12+
Commit: @COMMIT_HASH@
13+
vendor: "Centreon"
14+
homepage: "https://www.centreon.com"
15+
license: "Apache-2.0"
16+
17+
contents:
18+
- src: "../../../lua-sql-src/src/mysql.so"
19+
dst: "/usr/lib64/lua/@luaver@/luasql/mysql.so"
20+
file_info:
21+
mode: 0644
22+
packager: rpm
23+
24+
overrides:
25+
rpm:
26+
depends:
27+
- lua
28+
- mysql-libs
29+
30+
rpm:
31+
summary: LuaSQL MySQL
32+
signature:
33+
key_file: ${RPM_SIGNING_KEY_FILE}
34+
key_id: ${RPM_SIGNING_KEY_ID}

0 commit comments

Comments
 (0)