r11_workflows/action.yml

122 lines
3.9 KiB
YAML
Raw Normal View History

2025-01-04 13:23:29 +03:00
name: Build and Deploy
description: Build and deploy RPM packages
inputs:
PUBLICATOR:
description: Publicator token
required: true
CI_DEPLOY:
description: CI deploy token
required: true
runs:
using: "composite"
steps:
- name: Checkout code
run: |
git clone ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git ${GITHUB_WORKSPACE}
git checkout ${GITHUB_REF_NAME}
export SPECFILE=$(find . -type f -name "*.spec")
echo "SPECFILE=${SPECFILE}" > .env
source .env
echo "SPECFILE = ${SPECFILE}"
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Debug Print environment variables
run: |
source .env
env
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Debug os version and check exists spec
run: |
cat /etc/*release*
echo "check specfile" && [ -f ${SPECFILE} ] || exit 1
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Remove djam_personal repo
2025-01-04 13:49:19 +03:00
run: |
2025-01-04 16:45:17 +03:00
if grep -q "djam_personal" /etc/urpmi/urpmi.cfg; then sudo urpmi.removemedia djam_personal; fi
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Update repo
run: |
sudo urpmi.update -fa
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Download sources artifacts
run: |
2025-01-04 16:53:26 +03:00
abfyml=.abf.yml
if [ -e "${abfyml}" ]; then
echo "parsing file '${abfyml}'"
sed -ne '/^[Ss]ources\:.*$/,$p' ${abfyml} | \
sed -rn '$G;s/^[\"'\''[:space:]]*([^[:space:]:\"'\'']+)[\"'\''[:space:]]*.*[\"'\''[:space:]]*([0-9a-fA-F]{40})[\"'\''[:space:]]*$/\1 \2/p' | \
while read -r file sha; do
echo -n "found entry: file=${file} ... "
if [ -e "${file}" ]; then
if echo "${sha} ${file}" | sha1sum -c --status; then
echo "sha1sum correct"
else
echo "sha1sum INCORRECT! skipping..."
fi
else
echo -n "try to download... "
if curl -L "https://file-store.rosalinux.ru/download/${sha}" -o "${file}"; then
echo "ok"
echo -n "check sum... "
if echo "${sha} ${file}" | sha1sum -c --status; then
echo "ok"
else
echo "sha1sum INCORRECT! skipping..."
echo "remove file ${file}"
rm -f "${file}"
fi
else
echo "filed! skipping..."
fi
fi
done
fi
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Linter
run: |
source .env
rpmlint ${SPECFILE}
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Install dependies
run: |
source .env
sudo urpmi --buildrequires --auto ${SPECFILE}
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Build rpm
run: |
source .env
rpmbuild -ba ${SPECFILE}
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Deploy in repos packages
if: github.ref == 'refs/heads/rosa2016.1'
run: |
echo "Deploying artifacts..."
2025-01-04 22:53:49 +03:00
for file in /home/builder/rpmbuild/SRPMS/*.rpm; do
curl --user ${GITHUB_REPOSITORY_OWNER}:${CI_DEPLOY} \
--upload-file "$file" \
${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/rpm/r11/upload
done
for file in /home/builder/rpmbuild/RPMS/x86_64/*.rpm; do
curl --user ${GITHUB_REPOSITORY_OWNER}:${CI_DEPLOY} \
--upload-file "$file" \
${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/rpm/r11/upload
done
2025-01-04 15:53:01 +03:00
2025-01-04 13:23:29 +03:00
- name: Deploy in buildkitie
run: |
echo "Deploying src artifacts..."
2025-01-04 22:53:49 +03:00
for file in /home/builder/rpmbuild/SRPMS/*.rpm; do
2025-01-04 13:23:29 +03:00
curl -X POST https://api.buildkite.com/v2/packages/organizations/r11-team/registries/r11-srpms/packages \
-H "Authorization: Bearer ${PUBLICATOR}" \
2025-01-04 22:53:49 +03:00
-F "file=@$file"
done
2025-01-04 13:23:29 +03:00
echo "Deploying rpm artifacts..."
2025-01-04 22:53:49 +03:00
for file in /home/builder/rpmbuild/RPMS/x86_64/*.rpm; do
2025-01-04 13:23:29 +03:00
curl -X POST https://api.buildkite.com/v2/packages/organizations/r11-team/registries/r11-x86-64/packages \
-H "Authorization: Bearer ${PUBLICATOR}" \
2025-01-04 22:53:49 +03:00
-F "file=@$file"
done
2025-01-04 15:53:01 +03:00
2025-01-04 15:44:15 +03:00
container:
image: packages.buildkite.com/r11-team/r11/builder:latest
2025-01-04 15:30:48 +03:00