r11_workflows/action.yml

127 lines
4.1 KiB
YAML

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}"
- name: Debug Print environment variables
run: |
source .env
env
- name: Debug os version and check exists spec
run: |
cat /etc/*release*
echo "check specfile" && [ -f ${SPECFILE} ] || exit 1
- name: Remove djam_personal repo
run: |
if grep -q "djam_personal" /etc/urpmi/urpmi.cfg; then sudo urpmi.removemedia djam_personal; fi
- name: Update repo
run: |
sudo urpmi.update -fa
- name: Download sources artifacts
run: |
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
- name: Linter
run: |
source .env
rpmlint ${SPECFILE}
- name: Install dependies
run: |
source .env
sudo urpmi --buildrequires --auto ${SPECFILE}
- name: Build rpm
run: |
source .env
rpmbuild -ba ${SPECFILE}
- name: Deploy in repos packages
if: github.ref == 'refs/heads/rosa2016.1'
# env:
# CI_DEPLOY: ${{ secrets.CI_DEPLOY }}
run: |
echo "Deploying artifacts..."
cd /home/builder/rpmbuild/SRPMS/
for file in *.rpm; do
curl --user ${GITHUB_REPOSITORY_OWNER}:${{ secrets.CI_DEPLOY }} \
--upload-file "$file" \
${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/srpms/"$file"
done
for file in /home/builder/rpmbuild/RPMS/x86_64/*.rpm; do
curl --user ${GITHUB_REPOSITORY_OWNER}:${{ secrets.CI_DEPLOY }} \
--upload-file "$file" \
${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/rpm/upload
done
- name: Deploy in buildkitie
if: github.ref == 'refs/heads/rosa2016.1'
# env:
# PUBLICATOR: ${{ secrets.PUBLICATOR }}
run: |
echo "Deploying src artifacts..."
for file in /home/builder/rpmbuild/SRPMS/*.rpm; do
curl -X POST https://api.buildkite.com/v2/packages/organizations/r11-team/registries/r11-srpms/packages \
-H "Authorization: Bearer ${{ secrets.PUBLICATOR }}" \
-F "file=@$file"
done
echo "Deploying rpm artifacts..."
for file in /home/builder/rpmbuild/RPMS/x86_64/*.rpm; do
curl -X POST https://api.buildkite.com/v2/packages/organizations/r11-team/registries/r11-x86-64/packages \
-H "Authorization: Bearer ${{ secrets.PUBLICATOR }}" \
-F "file=@$file"
done
container:
image: packages.buildkite.com/r11-team/r11/builder:latest