forgejo: enable build.yml
This commit is contained in:
parent
a2dfc5179c
commit
9828ffb8de
8 changed files with 59 additions and 229 deletions
55
.forgejo/workflows/release-build.yml
Normal file
55
.forgejo/workflows/release-build.yml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
name: Kernel Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release-build:
|
||||||
|
name: Build
|
||||||
|
runs-on: aarch64
|
||||||
|
container:
|
||||||
|
image: debian:bookworm
|
||||||
|
steps:
|
||||||
|
- name: Setup build environment
|
||||||
|
run: |
|
||||||
|
cat /etc/os-release
|
||||||
|
cp /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian-src.sources
|
||||||
|
sed 's/Types: deb/Types: deb-src/' -i /etc/apt/sources.list.d/debian-src.sources
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y devscripts debhelper equivs git nodejs sudo
|
||||||
|
sudo hostname host.docker.internal
|
||||||
|
- name: Checkout Sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: pve-kernel-thunderx
|
||||||
|
- name: Checkout submodules
|
||||||
|
run: git -C pve-kernel-thunderx submodule update --init --depth 16 --jobs 3
|
||||||
|
- name: Build Kernel
|
||||||
|
run: |
|
||||||
|
cd pve-kernel-thunderx
|
||||||
|
debian/rules debian/control
|
||||||
|
sudo mk-build-deps --tool 'apt-get --no-install-recommends --yes' --install debian/control
|
||||||
|
debuild --no-lintian -ePVE* --jobs=auto -b -uc -us
|
||||||
|
- name: Upload Artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: debs
|
||||||
|
path: "*.deb"
|
||||||
|
release-deploy:
|
||||||
|
needs: [release-build]
|
||||||
|
runs-on: aarch64
|
||||||
|
container:
|
||||||
|
image: alpine:latest
|
||||||
|
steps:
|
||||||
|
- name: Setting up environment
|
||||||
|
run: apk add nodejs curl findutils
|
||||||
|
- name: Package download
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
- name: Package deployment
|
||||||
|
run: |
|
||||||
|
find -name '*.deb' > deb.list
|
||||||
|
while read file; do
|
||||||
|
curl --user ${{ vars.FORGE_REPO_USER }}:${{ secrets.FORGE_REPO_PRIVKEY }} --upload-file "$file" https://ayakael.net/api/packages/forge/debian/pool/bookworm/main/upload
|
||||||
|
done < deb.list
|
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
|
@ -1 +0,0 @@
|
||||||
custom: https://www.buymeacoffee.com/fabianishere
|
|
31
.github/workflows/build.yml
vendored
31
.github/workflows/build.yml
vendored
|
@ -1,31 +0,0 @@
|
||||||
name: Kernel Build
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
runs-on: [self-hosted]
|
|
||||||
if: ${{ !contains(github.event.head_commit.message, 'skip ci') }}
|
|
||||||
steps:
|
|
||||||
- name: Clean Workspace
|
|
||||||
run: rm -rf *.deb *.ddeb *.build *.buildinfo *.changes
|
|
||||||
- name: Checkout Sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
path: pve-port-kernel
|
|
||||||
- name: Clean Repository
|
|
||||||
run: git -C pve-port-kernel submodule foreach git clean -ffdx
|
|
||||||
- name: Build Kernel
|
|
||||||
run: |
|
|
||||||
rm -rf *.deb *.ddeb *.build *.buildinfo *.changes
|
|
||||||
cd pve-port-kernel
|
|
||||||
rm debian/control
|
|
||||||
debian/rules debian/control
|
|
||||||
debuild -e CCACHE_DIR=/var/cache/ccache --prepend-path=/usr/lib/ccache --jobs=auto -b -uc -us
|
|
||||||
- name: Upload Artifacts
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: debs
|
|
||||||
path: "*.deb"
|
|
87
.github/workflows/release.yml
vendored
87
.github/workflows/release.yml
vendored
|
@ -1,87 +0,0 @@
|
||||||
name: Kernel Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [closed]
|
|
||||||
branches:
|
|
||||||
- v*
|
|
||||||
- flavor/*/v*
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build (${{ matrix.debian }})
|
|
||||||
runs-on: [self-hosted, '${{ matrix.debian }}']
|
|
||||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
debian: [bullseye]
|
|
||||||
include:
|
|
||||||
- build_profile: 'generic'
|
|
||||||
build_cc: gcc
|
|
||||||
build_cflags: ''
|
|
||||||
steps:
|
|
||||||
- name: Clean Workspace
|
|
||||||
run: rm -rf *.deb *.ddeb *.build *.buildinfo *.changes
|
|
||||||
- name: Checkout Sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
path: pve-edge-kernel
|
|
||||||
- name: Clean Repository
|
|
||||||
run: git -C pve-edge-kernel submodule foreach git clean -ffdx
|
|
||||||
- name: Build Kernel
|
|
||||||
run: |
|
|
||||||
cd pve-edge-kernel
|
|
||||||
debian/rules debian/control
|
|
||||||
if [ "$PVE_BUILD_PROFILE" != "generic" ]; then
|
|
||||||
debchange -l +$PVE_BUILD_PROFILE -D edge --force-distribution -U -M "Specialization for $PVE_BUILD_PROFILE"
|
|
||||||
fi
|
|
||||||
debuild --no-lintian -e PVE* -e CCACHE_DIR=/var/cache/ccache --prepend-path=/usr/lib/ccache --jobs=auto -b -uc -us
|
|
||||||
env:
|
|
||||||
PVE_BUILD_PROFILE: ${{ matrix.build_profile }}
|
|
||||||
PVE_KERNEL_CC: ${{ matrix.build_cc }}
|
|
||||||
PVE_KERNEL_CFLAGS: ${{ matrix.build_cflags }}
|
|
||||||
PVE_ZFS_CC: ${{ matrix.build_cc }}
|
|
||||||
- name: Upload Artifacts
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.debian }}-${{ matrix.build_profile }}
|
|
||||||
path: "*.deb"
|
|
||||||
publish:
|
|
||||||
name: Publish
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true }}
|
|
||||||
needs: build
|
|
||||||
steps:
|
|
||||||
- name: Checkout Sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
path: artifacts
|
|
||||||
- name: Delete Debug Symbols
|
|
||||||
run: rm -f artifacts/*/*dbgsym*.deb
|
|
||||||
- name: Format Release Name
|
|
||||||
id: format_release
|
|
||||||
run: |
|
|
||||||
echo "release=$(scripts/version.sh)" >> $GITHUB_OUTPUT
|
|
||||||
changelog=$(dpkg-parsechangelog -c 1 -l debian/changelog)
|
|
||||||
echo "changelog<<EOF\n$changelog\nEOF" >> $GITHUB_OUTPUT
|
|
||||||
- name: Create Release
|
|
||||||
uses: ncipollo/release-action@v1
|
|
||||||
with:
|
|
||||||
commit: ${{ github.sha }}
|
|
||||||
tag: v${{ steps.format_release.outputs.release }}
|
|
||||||
body: ${{ steps.format_release.outputs.changelog }}
|
|
||||||
token: ${{ secrets.PAT }}
|
|
||||||
artifacts: "artifacts/bullseye-generic/pve-headers-*.deb,artifacts/bullseye-generic/pve-kernel-*.deb,artifacts/bullseye-generic/linux-tools-*.deb"
|
|
||||||
- name: Release to CloudSmith
|
|
||||||
run: |
|
|
||||||
pip install --upgrade cloudsmith-cli
|
|
||||||
find artifacts/bullseye-generic \
|
|
||||||
-name '*.deb' \
|
|
||||||
-not -name "*dbgsym*" \
|
|
||||||
-exec cloudsmith push deb pve-edge/kernel/debian/bullseye {} --republish \;
|
|
||||||
env:
|
|
||||||
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
|
|
62
.github/workflows/update.yml
vendored
62
.github/workflows/update.yml
vendored
|
@ -1,62 +0,0 @@
|
||||||
name: Kernel Update
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
tag:
|
|
||||||
description: 'Tag of the Linux Kernel to update to'
|
|
||||||
required: true
|
|
||||||
version:
|
|
||||||
description: 'Custom version number'
|
|
||||||
required: false
|
|
||||||
release:
|
|
||||||
description: 'Custom release number'
|
|
||||||
required: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update:
|
|
||||||
name: Update
|
|
||||||
runs-on: [ubuntu-latest]
|
|
||||||
steps:
|
|
||||||
- name: Checkout Sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
- name: Setup System Dependencies
|
|
||||||
run: sudo apt update && sudo apt install devscripts
|
|
||||||
- name: Update Kernel
|
|
||||||
id: update
|
|
||||||
run: |
|
|
||||||
TAG=${{ github.event.inputs.tag }}
|
|
||||||
VERSION=${{ github.event.inputs.version }}
|
|
||||||
RELEASE=${{ github.event.inputs.release }}
|
|
||||||
VERSION_OPT=${VERSION:+-v ${VERSION}}
|
|
||||||
RELEASE_OPT=${RELEASE:+-r ${RELEASE}}
|
|
||||||
./scripts/update.sh -t ${{ github.event.inputs.tag }} $VERSION_OPT $RELEASE_OPT
|
|
||||||
echo "version=$(scripts/version.sh -L)" >> $GITHUB_OUTPUT
|
|
||||||
echo "full=$(scripts/version.sh)" >> $GITHUB_OUTPUT
|
|
||||||
changelog=$(dpkg-parsechangelog -c 1 -l debian/changelog)
|
|
||||||
echo "changelog<<EOF\n$changelog\nEOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "branch=${GITHUB_REF##*/}" >> $GITHUB_OUTPUT
|
|
||||||
- name: Create Pull Request
|
|
||||||
uses: peter-evans/create-pull-request@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.PAT }} # Custom token needed to recursively trigger workflows
|
|
||||||
author: Fabian Mastenbroek <mail.fabianm@gmail.com>
|
|
||||||
commit-message: |
|
|
||||||
Add Linux ${{ steps.update.outputs.version }}
|
|
||||||
|
|
||||||
This change updates the kernel to Linux ${{ steps.update.outputs.version }}.
|
|
||||||
branch: staging/v${{ steps.update.outputs.full }}
|
|
||||||
branch-suffix: short-commit-hash
|
|
||||||
delete-branch: true
|
|
||||||
title: "Add Linux ${{ steps.update.outputs.version }}"
|
|
||||||
body: |
|
|
||||||
Automated pull request to update the kernel to Linux ${{ steps.update.outputs.version }}.
|
|
||||||
|
|
||||||
**Changelog:**
|
|
||||||
```
|
|
||||||
${{ steps.update.outputs.changelog }}
|
|
||||||
```
|
|
||||||
labels: |
|
|
||||||
release
|
|
47
.github/workflows/watch.yml
vendored
47
.github/workflows/watch.yml
vendored
|
@ -1,47 +0,0 @@
|
||||||
name: Kernel Watch
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 12 * * *' # Every day
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
name: Check for new Release
|
|
||||||
runs-on: [ubuntu-latest]
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
branch: ['v6.0.x']
|
|
||||||
steps:
|
|
||||||
- name: Checkout Sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: ${{ matrix.branch }}
|
|
||||||
submodules: recursive
|
|
||||||
- name: Setup System Dependencies
|
|
||||||
run: sudo apt install jq curl
|
|
||||||
- name: Check for Release
|
|
||||||
id: check
|
|
||||||
run: |
|
|
||||||
NEW=$(scripts/check.sh ${{ matrix.branch }})
|
|
||||||
if [[ -z $NEW ]]; then
|
|
||||||
echo "No new release found"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
echo "Found new Linux kernel version $NEW"
|
|
||||||
STAGING=$(git ls-remote --heads origin "staging/v$NEW*")
|
|
||||||
if [[ $STAGING ]]; then
|
|
||||||
echo "Existing staging update found"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
echo "No staging update found: triggering update"
|
|
||||||
echo "version=$NEW" >> $GITHUB_OUTPUT
|
|
||||||
- name: Trigger Update
|
|
||||||
if: ${{ steps.check.outputs.version }}
|
|
||||||
uses: benc-uk/workflow-dispatch@v1
|
|
||||||
with:
|
|
||||||
workflow: Kernel Update
|
|
||||||
token: ${{ secrets.PAT }} # Custom token needed to recursively trigger workflows
|
|
||||||
inputs: '{ "tag": "v${{ steps.check.outputs.version }}" }'
|
|
||||||
ref: ${{ matrix.branch }}
|
|
||||||
|
|
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -3,5 +3,5 @@
|
||||||
url = https://github.com/openzfs/zfs.git
|
url = https://github.com/openzfs/zfs.git
|
||||||
[submodule "linux"]
|
[submodule "linux"]
|
||||||
path = linux
|
path = linux
|
||||||
url = https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
|
url = https://git.proxmox.com/git/mirror_ubuntu-kernels.git
|
||||||
|
|
||||||
|
|
3
debian/rules
vendored
3
debian/rules
vendored
|
@ -82,6 +82,9 @@ override_dh_auto_clean: debian/control
|
||||||
rm -f ${PVE_KERNEL_TEMPLATES} ${PVE_HEADER_TEMPLATES}
|
rm -f ${PVE_KERNEL_TEMPLATES} ${PVE_HEADER_TEMPLATES}
|
||||||
rm -f debian/SOURCE debian/*.tmp .*_mark
|
rm -f debian/SOURCE debian/*.tmp .*_mark
|
||||||
|
|
||||||
|
override_dh_strip_nondeterminism:
|
||||||
|
# Disables dh_strip_nondeterminism to speed up the debian package creation
|
||||||
|
|
||||||
## Kernel
|
## Kernel
|
||||||
PVE_KERNEL_TEMPLATES := $(patsubst debian/templates/pve-kernel.%.in, debian/${PVE_KERNEL_PKG}.%, $(wildcard debian/templates/pve-kernel.*.in))
|
PVE_KERNEL_TEMPLATES := $(patsubst debian/templates/pve-kernel.%.in, debian/${PVE_KERNEL_PKG}.%, $(wildcard debian/templates/pve-kernel.*.in))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue