mirror of
https://github.com/Waujito/youtubeUnblock.git
synced 2025-02-01 14:10:49 +00:00
dfedde9aa8
New config structure allows to implement refcounting in the kernel module to escape borderline cases on module exit or config hot swap.
131 lines
3.4 KiB
YAML
131 lines
3.4 KiB
YAML
name: "youtubeUnblock build test"
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths-ignore:
|
|
- '.editorconfig'
|
|
- '.gitignore'
|
|
- 'LICENSE'
|
|
- 'README.md'
|
|
workflow_dispatch:
|
|
pull_request:
|
|
|
|
jobs:
|
|
prepare:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
version: ${{ steps.gh.outputs.version }}
|
|
sha: ${{ steps.gh.outputs.sha }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: 'openwrt'
|
|
|
|
- name: GH
|
|
id: gh
|
|
env:
|
|
REPO: ${{ github.repository }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
shell: bash
|
|
run: |
|
|
echo "version=$(cat youtubeUnblock/Makefile | grep PKG_VERSION | sed 's/PKG_VERSION:=//')" >> $GITHUB_OUTPUT
|
|
if [[ "${{ github.event_name }}" != "pull_request" ]]; then
|
|
echo "sha=$(echo ${GITHUB_SHA::7})" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "sha=$(gh api repos/$REPO/commits/main --jq '.sha[:7]')" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
build-static:
|
|
needs: prepare
|
|
name: build-static ${{ matrix.arch }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
arch: [x86_64]
|
|
branch: [latest-stable]
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build
|
|
id: build
|
|
env:
|
|
ARCH: ${{ matrix.arch }}
|
|
VERSION: ${{ needs.prepare.outputs.version }}
|
|
SHA: ${{ needs.prepare.outputs.sha }}
|
|
shell: bash
|
|
run: |
|
|
make -j$(nproc)
|
|
strip -s build/youtubeUnblock
|
|
cp -va build/youtubeUnblock .
|
|
tar -czvf static-youtubeUnblock-$VERSION-$SHA-$PLATFORM.tar.gz youtubeUnblock youtubeUnblock.service README.md
|
|
|
|
- name: Upload artifacts
|
|
if: steps.build.outcome == 'success'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: static-youtubeUnblock-${{ matrix.arch }}
|
|
path: ./**/static-youtubeUnblock*.tar.gz
|
|
|
|
test:
|
|
needs: prepare
|
|
name: test
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
arch: [x86_64]
|
|
branch: [latest-stable]
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build
|
|
id: build
|
|
shell: bash
|
|
run: |
|
|
make build_test -j$(nproc)
|
|
|
|
- name: Test
|
|
id: test
|
|
run:
|
|
./build/testYoutubeUnblock
|
|
|
|
build-kmod:
|
|
needs: prepare
|
|
name: build-kmod ${{ matrix.kernel_version }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
kernel_version:
|
|
- 6.6.52
|
|
- 5.15.167
|
|
- 5.4.284
|
|
- 4.19.322
|
|
- 4.4.302
|
|
- 3.10.108
|
|
- 3.0.101
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build kernel module
|
|
id: build
|
|
env:
|
|
VERSION: ${{ needs.prepare.outputs.version }}
|
|
SHA: ${{ needs.prepare.outputs.sha }}
|
|
shell: bash
|
|
run: |
|
|
docker run --rm -v ./:/youtubeUnblock -w /youtubeUnblock waujito/kernel-bins:${{ matrix.kernel_version }} make kmake KERNEL_BUILDER_MAKEDIR:=/linux
|
|
tar -czvf kmod-youtubeUnblock-$VERSION-$SHA-linux-${{ matrix.kernel_version }}.tar.gz kyoutubeUnblock.ko
|
|
|
|
- name: Upload artifacts
|
|
if: steps.build.outcome == 'success'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: kmod-youtubeUnblock-linux-${{ matrix.kernel_version }}
|
|
path: ./**/kmod-youtubeUnblock*.tar.gz
|
|
|