blue-merle/.github/workflows/ci.yml
Jakob Rieck ef35ca9899 Initial CI implementation
- Triggers on push events to any branch
- Builds the blue-merle package using the 23.05.0 SDK
- Currently does not sign the package
- Adapts Makefile: switches from Runtime + Buildtime dependencies
  to Runtime dependencies only
2023-10-14 11:27:31 +02:00

64 lines
2.1 KiB
YAML

name: CI
on:
push:
paths-ignore:
- 'README.md'
workflow_dispatch:
concurrency:
group: CI
cancel-in-progress: false
jobs:
build-packages:
name: Build Packages
runs-on: ubuntu-latest
strategy:
fail-fast: false
env:
owrt-package: blue-merle
SDK_URL: "https://downloads.openwrt.org/releases/23.05.0/targets/ath79/nand/openwrt-sdk-23.05.0-ath79-nand_gcc-12.3.0_musl.Linux-x86_64.tar.xz"
SDK_FILENAME: "openwrt-sdk-23.05.0-ath79-nand_gcc-12.3.0_musl.Linux-x86_64.tar.xz"
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event_name == 'push' && github.ref || 'main' }}
- name: Get the SDK
run: |
mkdir sdk
cd sdk
wget "${SDK_URL}"
tar xf "${SDK_FILENAME}"
- name: Set up package dir
run: |
cd "sdk/${SDK_FILENAME%.tar.xz}"
mkdir package/${{ env.owrt-package }}
ln -s "${GITHUB_WORKSPACE}"/Makefile package/${{ env.owrt-package }}/
ln -s "${GITHUB_WORKSPACE}"/files package/${{ env.owrt-package }}/
- name: Update packages feed
run: |
cd "sdk/${SDK_FILENAME%.tar.xz}"
scripts/feeds update packages >/dev/null
- name: Set up OpenWrt config
run: |
cd "sdk/${SDK_FILENAME%.tar.xz}"
echo "CONFIG_SIGNED_PACKAGES=n" > .config
make defconfig
- name: Build package
run: |
cd "sdk/${SDK_FILENAME%.tar.xz}"
make -j$(nproc) V=s package/${{ env.owrt-package }}/compile
make -j1 V=s package/index
- name: Generate artifact name
id: generate-name
run: echo "artifact-name=${{ github.event.repository.name }}-${{ github.ref_name }}-${{ github.sha }}" >> $GITHUB_OUTPUT
- name: Prepare artifact
run: |
mkdir package-output
rsync -av sdk/"${SDK_FILENAME%.tar.xz}"/bin/packages/mips_24kc/base/"${{ env.owrt-package }}"*.ipk package-output/
- uses: actions/upload-artifact@v3
with:
name: ${{ steps.generate-name.outputs.artifact-name }}
path: package-output/