-
Notifications
You must be signed in to change notification settings - Fork 298
88 lines (80 loc) · 4.13 KB
/
perl-client_build_package.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Packetfence-perl image/package build
on:
workflow_call:
inputs:
_IMAGE_TYPE:
required: True
type: string
_WORKDIR:
required: True
type: string
_BRANCH_NAME:
required: True
type: string
_VOLUME_MOUNT:
required: True
type: string
jobs:
git_checkout:
runs-on: package-build
steps:
- name: Checkout repository
uses: actions/checkout@v4
build_package:
runs-on: package-build
needs: git_checkout
container:
image: registry.gitlab.com/orange-opensource/gitlab-buildpkg/${{ inputs._IMAGE_TYPE == 'rhel8' && 'centos:8' || inputs._IMAGE_TYPE == 'debian11' && 'debian:bullseye' || inputs._IMAGE_TYPE == 'debian12' && 'debian:bookworm' }}
env:
EXECUTION_DIRECTORY: '/mnt/packetfence/'
# volumes:
# - ${{ github.workspace }}/:${{ inputs._VOLUME_MOUNT }}
steps:
- name: Copy
run: |
cp -avT ${GITHUB_WORKSPACE} ${EXECUTION_DIRECTORY}
- name: Install RHEL dependencies ${{ inputs._IMAGE_TYPE }}
if: inputs._IMAGE_TYPE == 'rhel8'
run: dnf -y install rpm-sign python39 && python3.9 -m pip install -q -U pip && pip install -q pynacl requests
- name: Install Debian dependencies ${{ inputs._IMAGE_TYPE }}
if: inputs._IMAGE_TYPE == 'debian11' || inputs._IMAGE_TYPE == 'debian12'
run: apt -qq update && apt -qq -y install python3 python3-pip && python3 -m pip install -q -U pip ${{ env.BREAK_OPTION}} && pip install -q pynacl requests ${{ env.BREAK_OPTION}}
env:
BREAK_OPTION: ${{ inputs._IMAGE_TYPE == 'debian12' && '--break-system-packages' || '' }}
- name: Safety add directory
shell: bash
run: |
cd ${EXECUTION_DIRECTORY}
git config --global --add safe.directory '*'
cd -
- name: Build package ${{inputs._IMAGE_TYPE}}
shell: bash
run: |
ls -la ${EXECUTION_DIRECTORY}
env
echo "${EXECUTION_DIRECTORY}"
ls -la "${EXECUTION_DIRECTORY}"
echo "${EXECUTION_DIRECTORY}/addons"
ls -la "${EXECUTION_DIRECTORY}/addons"
cd "${EXECUTION_DIRECTORY}"/addons/perl-client/
set -e && export FINGERBANK_API_KEY=$(set -e && python3 "${EXECUTION_DIRECTORY}"/addons/packetfence-perl/psono.py --api_key_id=${{ secrets.PSONO_API_KEY_ID }} --api_key_secret_key=${{ secrets.PSONO_API_KEY_SECRET_KEY }} --secret_id=${{ vars.PSONO_BUILDS_KEY_FINGERBANK }} --return_value=password)
set -e && make SHELL='sh' -e ${{ inputs._IMAGE_TYPE == 'rhel8' && 'build_rpm' || 'build_deb'}}
ls -la "${EXECUTION_DIRECTORY}"/addons/perl-client/result/${{ inputs._IMAGE_TYPE == 'rhel8' && 'centos/8' || inputs._IMAGE_TYPE == 'debian11' && 'debian/bullseye' || inputs._IMAGE_TYPE == 'debian12' && 'debian/bookworm'}}
env:
CI_COMMIT_REF_NAME: ${{ inputs._BRANCH_NAME }}
- name: Upload the package to artifactory ${{inputs._IMAGE_TYPE}}
uses: actions/[email protected]
with:
name: ${{ env.ARTIFACTORY_NAME }}
# path: /__w/packetfence/packetfence/addons/perl-client/result/${{ inputs._IMAGE_TYPE == 'rhel8' && 'centos/8' || inputs._IMAGE_TYPE == 'debian11' && 'debian/bookworm'}}/${{ env.PACKAGE_NAME }}
path: /mnt/packetfence/addons/perl-client/result/${{ inputs._IMAGE_TYPE == 'rhel8' && 'centos/8' || inputs._IMAGE_TYPE == 'debian11' && 'debian/bullseye' || inputs._IMAGE_TYPE == 'debian12' && 'debian/bookworm'}}/${{ env.PACKAGE_NAME }}
overwrite: true
env:
PACKAGE_NAME: ${{ inputs._IMAGE_TYPE == 'rhel8' && 'fingerbank-*.noarch.rpm' || inputs._IMAGE_TYPE == 'debian11' && 'fingerbank*.deb' || inputs._IMAGE_TYPE == 'debian12' && 'fingerbank*.deb' }}
ARTIFACTORY_NAME: ${{ inputs._IMAGE_TYPE == 'rhel8' && 'package-rpm8' || inputs._IMAGE_TYPE == 'debian11' && 'package-deb11' || inputs._IMAGE_TYPE == 'debian12' && 'package-deb12' }}
PATH: "${GITHUB_WORKSPACE}"
- name: Clean directory
if: always()
run: |
rm -rf "${EXECUTION_DIRECTORY}"
rm -rf ${HOME}/rpmbuild