diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..731f6d9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: Build + +on: [push, pull_request] + +jobs: + fetchKernelData: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - id: set-matrix + run: | + JSON=$(curl https://www.kernel.org/releases.json) + VERSIONSARRAY=$(echo $JSON | jq -c '[.releases[] | {version: .version, moniker: .moniker} | select(.moniker != "linux-next") | .version]') + echo ::set-output name=matrix::${VERSIONSARRAY} + + build: + needs: fetchKernelData + runs-on: ubuntu-latest + strategy: + matrix: + version: ${{fromJson(needs.fetchKernelData.outputs.matrix)}} + #version: [4.9.248, 4.4.248] + steps: + - uses: actions/checkout@v2 + - name: download-Kernel + env: + VERSION: ${{matrix.version }} + run: | + KERNEL_URL=https://kernel.ubuntu.com/~kernel-ppa/mainline/ + KERNEL_URL_DETAILS=$(wget --quiet -O - ${KERNEL_URL}v${VERSION}/ | grep -A8 "Build for amd64\|Test amd64") + ALL_DEB=$(echo "$KERNEL_URL_DETAILS" | grep -m1 'all.deb' | cut -d '"' -f 2) + KVER=$(echo $ALL_DEB | cut -d '_' -f 2 | rev | cut -c14- | rev)-generic + wget ${KERNEL_URL}v${VERSION}/$(echo "$KERNEL_URL_DETAILS" | grep -m1 "amd64.deb" | cut -d '"' -f 2) + wget ${KERNEL_URL}v${VERSION}/$ALL_DEB + sudo dpkg -i *.deb + sudo wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/module.lds.S -O /usr/src/linux-headers-$KVER/scripts/module.lds + sudo sed -i '$ d' /usr/src/linux-headers-$KVER/scripts/module.lds + echo "KVER=$KVER" >> $GITHUB_ENV + - name: build + run: make KVER=$KVER diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1fc5d84..0000000 --- a/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -language: c -compiler: gcc -dist: bionic -os: linux - -before_install: - #Cron builds only build mainline kernel. Stable and LTS kernels usually not have breaking changes. - - if [ "$TRAVIS_EVENT_TYPE" == "cron" ] && [ "$KVER_BUILD" != "$KERNEL_MAINLINE" ]; then exit 0; fi - - export KERNEL_URL_DETAILS=$(wget --quiet -O - ${KERNEL_URL}v${KVER_BUILD}/ | grep -A8 "Build for ${TRAVIS_CPU_ARCH}\|Test ${TRAVIS_CPU_ARCH}") - - export ALL_DEB=$(echo "$KERNEL_URL_DETAILS" | grep -m1 'all.deb' | cut -d '"' -f 2) - - export KVER=$(echo $ALL_DEB | cut -d '_' -f 2 | rev | cut -c14- | rev)-generic - - wget ${KERNEL_URL}v${KVER_BUILD}/$(echo "$KERNEL_URL_DETAILS" | grep -m1 "${TRAVIS_CPU_ARCH}.deb" | cut -d '"' -f 2) - - wget ${KERNEL_URL}v${KVER_BUILD}/$ALL_DEB - - sudo dpkg -i *.deb - -script: make CC=$CC KVER=$KVER - -addons: - apt: - packages: - #Force update to GCC-7.5 in order to compile Kernels >= 5.4. - - gcc-7 -env: - global: - - KERNEL_URL=https://kernel.ubuntu.com/~kernel-ppa/mainline/ - - KERNEL_MAINLINE=$(curl -s https://www.kernel.org/releases.json | grep -B1 'mainline' | head -1 | cut -d'"' -f4) - - KERNEL_STABLE=$(curl -s https://www.kernel.org/releases.json | grep -A1 'latest_stable' | tail -1 | cut -d'"' -f4) - jobs: - - KVER_BUILD=$KERNEL_MAINLINE - - KVER_BUILD=$KERNEL_STABLE - - KVER_BUILD=5.8.17 - - KVER_BUILD=5.4.73 - - KVER_BUILD=4.19.154 - - KVER_BUILD=4.14.203 - - KVER_BUILD=4.9.241 - - KVER_BUILD=4.4.241 -cache: - - ccache: true - -jobs: -#Mainline kernel is also compiled on GCC 8 & 9. Jobs are added to the build matrix expansion - include: - - addons: - apt: - sources: - - sourceline: "ppa:ubuntu-toolchain-r/test" - packages: - - gcc-9 - env: CC=gcc-9 KVER_BUILD=$KERNEL_MAINLINE - - addons: - apt: - packages: - - gcc-8 - env: CC=gcc-8 KVER_BUILD=$KERNEL_MAINLINE - - if: type != cron - addons: - apt: - packages: - - gcc-7 - - bc - - linux-headers-$(uname -r) - arch: arm64 - env: KVER_BUILD=$(uname -r) - before_install: true - script: make CONFIG_PLATFORM_ARM_AARCH64=y CONFIG_PLATFORM_I386_PC=n CONFIG_MP_VHT_HW_TX_MODE=n