Skip to content

feat: release workflow #12

feat: release workflow

feat: release workflow #12

Workflow file for this run

name: Build
on:
push:
permissions:
contents: write
jobs:
build-deb:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get install -y build-essential dpkg-dev
- name: Download source deb
run: |
branch=$(echo $GITHUB_REF | cut -d'/' -f3)
branch=${branch/-p2p/}
version=$(echo $branch | cut -d'.' -f1)
# download source deb
echo "Downloading nvidia-kernel-source-${version}-open_${branch}-0ubuntu1_amd64.deb"
curl -o source.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/nvidia-kernel-source-${version}-open_${branch}-0ubuntu1_amd64.deb
- name: Extract source deb
run: dpkg-deb -R source.deb source-deb
- name: Build kernel module
run: |
make modules -j$(nproc)
- name: Replace kernel module source
run: |
branch=$(echo $GITHUB_REF | cut -d'/' -f3)
branch=${branch/-p2p/}
rm -r source-deb/usr/src/nvidia-${branch}/
cp -r kernel-open/ source-deb/usr/src/nvidia-${branch}/
rm source-deb/usr/src/nvidia-${branch}/dkms.conf
- name: Replace kernel module
run: |
branch=$(echo $GITHUB_REF | cut -d'/' -f3)
branch=${branch/-p2p/}
rm source-deb/usr/src/nvidia-${branch}/nvidia/nv-kernel.o_binary
rm source-deb/usr/src/nvidia-${branch}/nvidia-modeset/nv-modeset-kernel.o_binary
cp src/nvidia/_out/Linux_x86_64/nv-kernel.o source-deb/usr/src/nvidia-${branch}/nvidia/nv-kernel.o_binary
cp src/nvidia-modeset/_out/Linux_x86_64/nv-modeset-kernel.o source-deb/usr/src/nvidia-${branch}/nvidia-modeset/nv-modeset-kernel.o_binary
- name: Repack deb
run: |
branch=$(echo $GITHUB_REF | cut -d'/' -f3)
branch=${branch/-p2p/}
version=$(echo $branch | cut -d'.' -f1)
dpkg-deb -b source-deb nvidia-kernel-source-${version}-open-0ubuntu1_amd64.deb
- name: Generate artifact name
run: |
branch=$(echo $GITHUB_REF | cut -d'/' -f3)
branch=${branch/-p2p/}
version=$(echo $branch | cut -d'.' -f1)
echo "artifact_name=nvidia-kernel-source-${version}-open-0ubuntu1_amd64.deb" >> $GITHUB_ENV
- name: Upload deb
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact_name }}
path: ${{ env.artifact_name }}
- name: Create release
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
files: ${{ env.artifact_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}