ci: add github action for packaging firmware #10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: package-firmware | |
on: | |
push: | |
tags: | |
- "[0-9]+.[0-9]+.[0-9]+" | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
packages: write | |
jobs: | |
ubuntu-cn10k-package: | |
name: ubuntu-cn10k-arm64 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Extract version details | |
id: version | |
run: | | |
mkdir -p "${PWD}/artifacts" | |
git tag --points-at HEAD > /tmp/tags | |
[ -s /tmp/tags ] && PKG_POSTFIX= || PKG_POSTFIX=-devel | |
echo "PKG_VERSION_NAME=`cat VERSION`" >> "${PWD}/artifacts/env" | |
echo "PKG_POSTFIX=${PKG_POSTFIX}" >> "${PWD}/artifacts/env" | |
- name: Generate CPT package | |
run: | | |
source ${PWD}/artifacts/env | |
DISTRO=ubuntu-`lsb_release -rs` | |
echo "DISTRO=${DISTRO}" >> ${PWD}/artifacts/env | |
mkdir -p "${PWD}"/install/lib/firmware/mrvl/ | |
cp -r "${PWD}"/cpt/* "${PWD}"/install/lib/firmware/mrvl/. | |
mkdir -p "${PWD}/install/DEBIAN" | |
cd "${PWD}/install/" | |
echo 'Package: cpt-firmware-cn10k'${PKG_POSTFIX} >> DEBIAN/control | |
echo 'Version: '${PKG_VERSION_NAME} >> DEBIAN/control | |
echo "Maintainer: Jerin Jacob (jerinj@marvell.com)" >> DEBIAN/control | |
echo "Architecture: arm64" >> DEBIAN/control | |
echo "Description: Cryptographic Accelerator Firmware for Marvell Octeon 10" >> DEBIAN/control | |
cd - | |
mv "${PWD}/install" "${PWD}/cpt-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64" | |
dpkg --build "${PWD}/cpt-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64" | |
cp -r "${PWD}/cpt-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64.deb" ${PWD}/artifacts/. | |
- name: Generate ML package | |
run: | | |
source ${PWD}/artifacts/env | |
mkdir -p "${PWD}"/install/lib/firmware/mrvl/ | |
cp -r "${PWD}"/ml/* "${PWD}"/install/lib/firmware/mrvl/. | |
mkdir -p "${PWD}/install/DEBIAN" | |
cd "${PWD}/install/" | |
echo 'Package: ml-firmware-cn10k'${PKG_POSTFIX} >> DEBIAN/control | |
echo 'Version: '${PKG_VERSION_NAME} >> DEBIAN/control | |
echo "Maintainer: Jerin Jacob (jerinj@marvell.com)" >> DEBIAN/control | |
echo "Architecture: arm64" >> DEBIAN/control | |
echo "Description: Machine Learning Accelerator Firmware for Marvell Octeon 10" >> DEBIAN/control | |
cd - | |
mv "${PWD}/install" "${PWD}/ml-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64" | |
dpkg --build "${PWD}/ml-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64" | |
cp -r "${PWD}/ml-firmware-cn10k${PKG_POSTFIX}_${PKG_VERSION_NAME}_arm64.deb" ${PWD}/artifacts/. | |
- name: Export version name | |
id: artifacts | |
run: | | |
source "${PWD}/artifacts/env" | |
echo $PKG_VERSION_NAME | |
echo "PKG_VERSION_NAME=${PKG_VERSION_NAME}" >> "$GITHUB_OUTPUT" | |
echo $DISTRO | |
echo "DISTRO=${DISTRO}" >> "$GITHUB_OUTPUT" | |
[[ "$PKG_POSTFIX" == "-devel" ]] && TAG=devel || TAG=${PKG_VERSION_NAME} | |
echo "PKG_POSTFIX=${PKG_POSTFIX}" >> "$GITHUB_OUTPUT" | |
echo "TAG=${TAG}" >> "$GITHUB_OUTPUT" | |
- name: Delete existing CPT release | |
if: ${{ github.event_name == 'push' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
if gh release view cpt-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }}; then | |
gh release delete cpt-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} --cleanup-tag -y | |
else | |
echo "Release not found" | |
fi | |
- name: Delete existing ML release | |
if: ${{ github.event_name == 'push' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
if gh release view ml-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }}; then | |
gh release delete ml-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} --cleanup-tag -y | |
else | |
echo "Release not found" | |
fi | |
- name: Release CPT cn10k package | |
uses: softprops/action-gh-release@v2.0.4 | |
if: ${{ github.event_name == 'push' }} | |
with: | |
tag_name: cpt-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} | |
files: | | |
${{ github.workspace }}/artifacts/cpt-firmware-cn10k${{ steps.artifacts.outputs.PKG_POSTFIX }}_${{ steps.artifacts.outputs.PKG_VERSION_NAME }}_arm64.deb | |
- name: Release ML cn10k package | |
uses: softprops/action-gh-release@v2.0.4 | |
if: ${{ github.event_name == 'push' }} | |
with: | |
tag_name: ml-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} | |
files: | | |
${{ github.workspace }}/artifacts/ml-firmware-cn10k${{ steps.artifacts.outputs.PKG_POSTFIX }}_${{ steps.artifacts.outputs.PKG_VERSION_NAME }}_arm64.deb | |
- name: Dispatch package update event | |
if: ${{ github.event_name == 'push' }} | |
run: | | |
curl -L \ | |
-X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${{ secrets.PPA_REPO_SECRET }}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
https://api.github.com/repos/marvellembeddedprocessors/packages/dispatches \ | |
-d '{"event_type":"dispatch-event", "client_payload": {"package" : "cpt-firmware", | |
"tag": "cpt-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }}", | |
"distro" : "${{ steps.artifacts.outputs.DISTRO }}"}}' | |
sleep 120 | |
curl -L \ | |
-X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${{ secrets.PPA_REPO_SECRET }}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
https://api.github.com/repos/marvellembeddedprocessors/packages/dispatches \ | |
-d '{"event_type":"dispatch-event", "client_payload": {"package" : "ml-firmware", | |
"tag": "ml-firmware-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }}", | |
"distro" : "${{ steps.artifacts.outputs.DISTRO }}"}}' |