Skip to content

Commit 1ae95f5

Browse files
committed
Changed support OS/PHP and Updated codes/mail addresses
1 parent fa28096 commit 1ae95f5

File tree

7 files changed

+288
-195
lines changed

7 files changed

+288
-195
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,19 @@ jobs:
5555
container:
5656
- ubuntu:24.04
5757
- ubuntu:22.04
58+
- debian:trixie
5859
- debian:bookworm
5960
- debian:bullseye
61+
- rockylinux/rockylinux:10
6062
- rockylinux:9
6163
- rockylinux:8
64+
- fedora:42
6265
- fedora:41
63-
- fedora:40
66+
- alpine:3.22
6467
- alpine:3.21
6568
- alpine:3.20
66-
- alpine:3.19
6769

6870
php:
69-
- PHP81
7071
- PHP82
7172
- PHP83
7273
- PHP84

.github/workflows/phpext_helper.sh

Lines changed: 107 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,27 @@ run_pre_configuration()
261261
return 1
262262
fi
263263

264-
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} phpize"; then
265-
PRNERR "Failed to run \"phpize\" before configration."
264+
# [NOTE]
265+
# Some OS only have the phpizeXX command instead of phpize, so we'll check here.
266+
# ex) Alpine 3.22/3.21 only has phpize84.
267+
#
268+
PIPIZECMD="phpize"
269+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1"; then
270+
PIPIZECMD="phpize84"
271+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1"; then
272+
PIPIZECMD="phpize83"
273+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1"; then
274+
PIPIZECMD="phpize82"
275+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1"; then
276+
PRNERR "Not found \"phpize\" or \"phpizeXX\" command."
277+
return 1
278+
fi
279+
fi
280+
fi
281+
fi
282+
283+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} ${PIPIZECMD}"; then
284+
PRNERR "Failed to run \"${PIPIZECMD}\" before configration."
266285
return 1
267286
fi
268287
return 0
@@ -273,7 +292,31 @@ run_pre_configuration()
273292
#
274293
run_configuration()
275294
{
276-
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} ./configure"; then
295+
# [NOTE]
296+
# Some OS only have the phpizeXX command instead of phpize, so we'll check here.
297+
# ex) Alpine 3.22/3.21 only has php-config84.
298+
#
299+
if PHPCONFIGCMD=$(/bin/sh -c "${SWITCH_PHP_COMMAND} command -v php-config"); then
300+
# default
301+
CONFIGURE_PHP_EXT_OPT=""
302+
else
303+
if PHPCONFIGCMD=$(/bin/sh -c "${SWITCH_PHP_COMMAND} command -v php-config84"); then
304+
CONFIGURE_PHP_EXT_OPT="--with-php-config=${PHPCONFIGCMD}"
305+
else
306+
if PHPCONFIGCMD=$(/bin/sh -c "${SWITCH_PHP_COMMAND} command -v php-config83"); then
307+
CONFIGURE_PHP_EXT_OPT="--with-php-config=${PHPCONFIGCMD}"
308+
else
309+
if PHPCONFIGCMD=$(/bin/sh -c "${SWITCH_PHP_COMMAND} command -v php-config82"); then
310+
CONFIGURE_PHP_EXT_OPT="--with-php-config=${PHPCONFIGCMD}"
311+
else
312+
PRNWARN "Not found \"php-config\" or \"php-configXX\" command, so do not specify \"--with-php-config\" option."
313+
CONFIGURE_PHP_EXT_OPT=""
314+
fi
315+
fi
316+
fi
317+
fi
318+
319+
if ! /bin/sh -c "${SWITCH_PHP_COMMAND} ./configure ${CONFIGURE_PHP_EXT_OPT}"; then
277320
PRNERR "Failed to run \"configure\"."
278321
return 1
279322
fi
@@ -557,47 +600,9 @@ run_publish_package()
557600
PRNERR "Token for uploading to packagecloud.io is not specified."
558601
return 1
559602
fi
560-
561-
# [NOTE]
562-
# The Ruby environment of some OS uses RVM (Ruby Version Manager) and requires a Bash shell environment.
563-
#
564-
if [ "${IS_OS_DEBIAN}" -eq 1 ] && echo "${CI_OSTYPE}" | sed -e 's#:##g' | grep -q -i -e 'debian10' -e 'debianbuster'; then
565-
#
566-
# Case for Debian 10(buster)
567-
#
568-
{
569-
#
570-
# Create bash script for run package_cloud command, because using RVM(Ruby Version Manager).
571-
#
572-
echo '#!/bin/bash'
573-
echo ''
574-
echo 'source /etc/profile.d/rvm.sh'
575-
echo ''
576-
echo 'if ! '"PACKAGECLOUD_TOKEN=${CI_PACKAGECLOUD_TOKEN} package_cloud push ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG} ${SRCTOP}/${PKG_OUTPUT_DIR}/*.${PKG_EXT}; then"
577-
echo ' exit 1'
578-
echo 'fi'
579-
echo ''
580-
echo 'exit 0'
581-
} > /tmp/run_package_cloud.sh
582-
chmod +x /tmp/run_package_cloud.sh
583-
584-
#
585-
# Run bash script
586-
#
587-
if ({ RUNCMD /tmp/run_package_cloud.sh || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
588-
PRNERR "Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG}"
589-
rm -f /tmp/run_package_cloud.sh
590-
return 1
591-
fi
592-
rm -f /tmp/run_package_cloud.sh
593-
else
594-
#
595-
# Case for other than Debian 10(buster)
596-
#
597-
if ! PACKAGECLOUD_TOKEN="${CI_PACKAGECLOUD_TOKEN}" /bin/sh -c "package_cloud push ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG} ${SRCTOP}/${PKG_OUTPUT_DIR}/*.${PKG_EXT}"; then
598-
PRNERR "Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG}"
599-
return 1
600-
fi
603+
if ! PACKAGECLOUD_TOKEN="${CI_PACKAGECLOUD_TOKEN}" /bin/sh -c "package_cloud push ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG} ${SRCTOP}/${PKG_OUTPUT_DIR}/*.${PKG_EXT}"; then
604+
PRNERR "Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER}/${CI_PACKAGECLOUD_PUBLISH_REPO}/${DIST_TAG}"
605+
return 1
601606
fi
602607
else
603608
PRNINFO "Not need to publish packages"
@@ -862,7 +867,7 @@ else
862867
fi
863868
if [ -z "${CI_DEVELOPER_EMAIL}" ]; then
864869
PRNWARN "DEVELOPER_EMAIL is not set in the options or environment variables. There is no choice but to set the default value."
865-
CI_DEVELOPER_EMAIL="antpickax-support@mail.yahoo.co.jp"
870+
CI_DEVELOPER_EMAIL="ml-antpickax-support@lycorp.co.jp"
866871
fi
867872
fi
868873

@@ -1485,99 +1490,58 @@ if [ "${CI_DO_PUBLISH}" -eq 1 ]; then
14851490
exit 1
14861491
fi
14871492

1488-
elif [ "${IS_OS_DEBIAN}" -eq 1 ] && echo "${CI_OSTYPE}" | sed -e 's#:##g' | grep -q -i -e 'debian10' -e 'debianbuster'; then
1493+
else
14891494
#
1490-
# Case for Debian 10/buster (default ruby 2.5)
1495+
# Case for other than Alpine / Rocky Linux 8
14911496
#
1497+
if ({ RUNCMD "${GEM_BIN}" "${GEM_INSTALL_CMD}" rake package_cloud || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1498+
PRNERR "Failed to install packagecloud.io upload tools"
1499+
exit 1
1500+
fi
1501+
fi
14921502

1493-
#
1494-
# Set RVM(Ruby Version Manager) and install Ruby 2.7 and package_cloud
1495-
#
1496-
# [NOTE]
1497-
# Install Ruby2.7 using RVM tools.
1498-
# Installation and running RVM tools must be done in Bash.
1499-
# This set of installations will create a Bash script and run it.
1500-
#
1501-
# The script does the following:
1502-
# First, we need to install the GPG key before installing RVM.
1503-
# This is done with one of the following commands:
1504-
#
1505-
# sudo gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
1506-
# or
1507-
# command curl -sSL https://rvm.io/mpapis.asc | sudo gpg --import -
1508-
# command curl -sSL https://rvm.io/pkuczynski.asc | sudo gpg --import -
1509-
#
1510-
# After that, install RVM installation, RVM environment settings, Ruby2.7 installation, and package_cloud tools.
1511-
#
1512-
# [NOTE]
1513-
# The RVM installation requires running from a bash shell.
1514-
# So create a Bash script and run it.
1515-
{
1516-
echo '#!/bin/bash'
1517-
echo ''
1518-
echo 'if ! curl -sSL https://rvm.io/mpapis.asc | gpg --import - 2>&1; then'
1519-
echo ' echo "Failed to run [ curl -sSL https://rvm.io/mpapis.asc | gpg --import - ] command."'
1520-
echo ' exit 1'
1521-
echo 'fi'
1522-
echo 'if ! curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - 2>&1; then'
1523-
echo ' echo "Failed to run [ curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - ] command."'
1524-
echo ' exit 1'
1525-
echo 'fi'
1526-
echo ''
1527-
echo 'if ! curl -sSL https://get.rvm.io | bash -s stable --ruby 2>&1; then'
1528-
echo ' echo "Failed to install RVM tool."'
1529-
echo ' exit 1'
1530-
echo 'fi'
1531-
echo ''
1532-
echo 'if [ ! -f /etc/profile.d/rvm.sh ]; then'
1533-
echo ' echo "Not found /etc/profile.d/rvm.sh file."'
1534-
echo ' exit 1'
1535-
echo 'fi'
1536-
echo 'source /etc/profile.d/rvm.sh'
1537-
echo ''
1538-
echo 'if ! rvm get stable --autolibs=enable 2>&1; then'
1539-
echo ' echo "Failed to get/update RVM stable."'
1540-
echo ' exit 1'
1541-
echo 'fi'
1542-
echo 'if ! usermod -a -G rvm root 2>&1; then'
1543-
echo ' echo "Failed to add rvm user to root group."'
1544-
echo ' exit 1'
1545-
echo 'fi'
1546-
echo 'if ! rvm install ruby-2.7 2>&1; then'
1547-
echo ' echo "Failed to install ruby 2.7."'
1548-
echo ' exit 1'
1549-
echo 'fi'
1550-
echo 'if ! rvm --default use ruby-2.7 2>&1; then'
1551-
echo ' echo "Failed to set ruby 2.7 as default."'
1552-
echo ' exit 1'
1553-
echo 'fi'
1554-
echo ''
1555-
echo 'if ! '"${GEM_BIN} ${GEM_INSTALL_CMD} package_cloud 2>&1; then"
1556-
echo ' echo "Failed to install packagecloud.io upload tools"'
1557-
echo ' exit 1'
1558-
echo 'fi'
1559-
echo ''
1560-
echo 'exit 0'
1561-
} > /tmp/rvm_setup.sh
1562-
chmod +x /tmp/rvm_setup.sh
1503+
# [NOTE]
1504+
# Currently, the package_cloud tool must restrict gem packages depending on
1505+
# the Ruby version.
1506+
#
1507+
RB_MAJOR_VER=$(ruby -v | awk '{print $2}' | awk -F'[^0-9]' '{print $1}')
1508+
RB_MINOR_VER=$(ruby -v | awk '{print $2}' | awk -F'[^0-9]' '{print $2}')
1509+
RB_PATCH_VER=$(ruby -v | awk '{print $2}' | awk -F'[^0-9]' '{print $3}')
1510+
RB_ALL_VER=$((RB_MAJOR_VER*10000 + RB_MINOR_VER*100 + RB_PATCH_VER))
15631511

1512+
if [ "${RB_ALL_VER}" -ge 30400 ]; then
1513+
# [NOTE]
1514+
# For Ruby 3.4.0 and later, you must manually install the addrev gem package.
15641515
#
1565-
# Run bash script
1566-
#
1567-
if ({ RUNCMD /tmp/rvm_setup.sh || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1568-
PRNERR "Failed to set up RVM."
1569-
rm -f /tmp/rvm_setup.sh
1516+
PRNINFO "Start to install addrev gem because ruby version is 3.4.0 later"
1517+
if ({ RUNCMD "${GEM_BIN}" "${GEM_INSTALL_CMD}" abbrev || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1518+
PRNERR "Failed to install addrev gem"
15701519
exit 1
15711520
fi
1572-
rm -f /tmp/rvm_setup.sh
15731521

1574-
else
1575-
#
1576-
# Case for other than Alpine / Debian 10 / Rocky Linux 8
1522+
# [NOTE]
1523+
# A fix for JSON::Fragment has been made in json 2.10.0 and later, which
1524+
# causes an error when running the current package_cloud tool.
1525+
# To avoid this, we will limit it to json 2.9.1.(This will occur in Fedora 42)
15771526
#
1578-
if ({ RUNCMD "${GEM_BIN}" "${GEM_INSTALL_CMD}" rake package_cloud || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1579-
PRNERR "Failed to install packagecloud.io upload tools"
1580-
exit 1
1527+
GEMJSON_MAJOR_VER=$("${GEM_BIN}" list | grep '^json[[:space:]]*(' | grep -oP '\(\K[^\)]*' | awk -F'[^0-9]' '{print $1}')
1528+
GEMJSON_MINOR_VER=$("${GEM_BIN}" list | grep '^json[[:space:]]*(' | grep -oP '\(\K[^\)]*' | awk -F'[^0-9]' '{print $2}')
1529+
GEMJSON_PATCH_VER=$("${GEM_BIN}" list | grep '^json[[:space:]]*(' | grep -oP '\(\K[^\)]*' | awk -F'[^0-9]' '{print $3}')
1530+
GEMJSON_ALL_VER=$((GEMJSON_MAJOR_VER*10000 + GEMJSON_MINOR_VER*100 + GEMJSON_PATCH_VER))
1531+
1532+
if [ "${GEMJSON_ALL_VER}" -gt 20901 ]; then
1533+
PRNINFO "Start to uninstall all json gem"
1534+
for json_installed_path in $("${GEM_BIN}" env gempath | tr ':' '\n'); do
1535+
if ({ RUNCMD "${GEM_BIN}" uninstall -i "${json_installed_path}" json -aIx || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1536+
PRNERR "Failed to uninstall json gem in ${json_installed_path}, but continue..."
1537+
fi
1538+
done
1539+
1540+
PRNINFO "Start to install json gem 2.9.1"
1541+
if ({ RUNCMD "${GEM_BIN}" "${GEM_INSTALL_CMD}" json -v 2.9.1 || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1542+
PRNERR "Failed to install json gem"
1543+
exit 1
1544+
fi
15811545
fi
15821546
fi
15831547
else
@@ -1619,9 +1583,9 @@ if [ "${RUN_CPPCHECK}" -eq 1 ]; then
16191583
PRNERR "Failed to enable powertools"
16201584
exit 1
16211585
fi
1622-
else
1586+
elif echo "${CI_OSTYPE}" | sed -e 's#:##g' | grep -q -i 'rockylinux9'; then
16231587
#
1624-
# Rocky 9 or later
1588+
# Rocky 9
16251589
#
16261590
if ({ RUNCMD "${INSTALLER_BIN}" "${INSTALL_CMD}" "${INSTALL_CMD_ARG}" "${INSTALL_AUTO_ARG}" https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
16271591
PRNERR "Failed to install epel repository"
@@ -1631,6 +1595,18 @@ if [ "${RUN_CPPCHECK}" -eq 1 ]; then
16311595
PRNERR "Failed to enable epel repository"
16321596
exit 1
16331597
fi
1598+
else
1599+
#
1600+
# Rocky 10 or later
1601+
#
1602+
if ({ RUNCMD "${INSTALLER_BIN}" "${INSTALL_CMD}" "${INSTALL_CMD_ARG}" "${INSTALL_AUTO_ARG}" https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1603+
PRNERR "Failed to install epel repository"
1604+
exit 1
1605+
fi
1606+
if ({ RUNCMD "${INSTALLER_BIN}" config-manager --enable epel || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
1607+
PRNERR "Failed to enable epel repository"
1608+
exit 1
1609+
fi
16341610
fi
16351611
if ({ RUNCMD "${INSTALLER_BIN}" "${INSTALL_CMD}" "${INSTALL_CMD_ARG}" "${INSTALL_AUTO_ARG}" cppcheck || echo > "${PIPEFAILURE_FILE}"; } | sed -e 's/^/ /g') && rm "${PIPEFAILURE_FILE}" >/dev/null 2>&1; then
16361612
PRNERR "Failed to install cppcheck"

0 commit comments

Comments
 (0)