|
@@ -15,22 +15,16 @@ jobs:
|
|
|
include:
|
|
|
- arch: arm_cortex-a9_vfpv3-d16
|
|
|
target: mvebu-cortexa9
|
|
|
-
|
|
|
- arch: mips_24kc
|
|
|
target: ath79-generic
|
|
|
-
|
|
|
- arch: mipsel_24kc
|
|
|
target: mt7621
|
|
|
-
|
|
|
- arch: aarch64_cortex-a53
|
|
|
target: mvebu-cortexa53
|
|
|
-
|
|
|
- arch: arm_cortex-a15_neon-vfpv4
|
|
|
target: armvirt-32
|
|
|
-
|
|
|
- arch: i386_pentium-mmx
|
|
|
target: x86-geode
|
|
|
-
|
|
|
- arch: x86_64
|
|
|
target: x86-64
|
|
|
|
|
@@ -45,6 +39,9 @@ jobs:
|
|
|
large-packages: true
|
|
|
docker-images: true
|
|
|
swap-storage: true
|
|
|
+ apt: true
|
|
|
+ brew: true
|
|
|
+ port: true
|
|
|
|
|
|
- uses: actions/checkout@v3
|
|
|
with:
|
|
@@ -52,77 +49,105 @@ jobs:
|
|
|
|
|
|
- name: Determine branch name
|
|
|
run: |
|
|
|
- BRANCH="${GITHUB_BASE_REF#refs/heads/}"
|
|
|
+ if [ -n "$GITHUB_BASE_REF" ]; then
|
|
|
+ BRANCH="${GITHUB_BASE_REF#refs/heads/}"
|
|
|
+ else
|
|
|
+ BRANCH="${GITHUB_REF#refs/heads/}"
|
|
|
+ fi
|
|
|
echo "Building for $BRANCH"
|
|
|
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
|
|
|
|
|
|
- name: Determine changed packages
|
|
|
run: |
|
|
|
- # only detect packages with changes
|
|
|
+ if [ -n "$GITHUB_BASE_REF" ]; then
|
|
|
+ BASE_REF="origin/$GITHUB_BASE_REF"
|
|
|
+ else
|
|
|
+ BASE_REF="HEAD^"
|
|
|
+ fi
|
|
|
+
|
|
|
PKG_ROOTS=$(find . -name Makefile | \
|
|
|
- grep -v ".*/src/Makefile" | \
|
|
|
- sed -e 's@./\(.*\)/Makefile@\1/@')
|
|
|
- CHANGES=$(git diff --diff-filter=d --name-only origin/$BRANCH)
|
|
|
-
|
|
|
+ grep -E "/(src)?/Makefile" | \
|
|
|
+ sed -e 's@/Makefile@@' -e 's@^\./@@' | \
|
|
|
+ sort -u)
|
|
|
+
|
|
|
+ CHANGES=$(git diff --diff-filter=d --name-only $BASE_REF..HEAD)
|
|
|
+
|
|
|
+ PACKAGES=""
|
|
|
for ROOT in $PKG_ROOTS; do
|
|
|
for CHANGE in $CHANGES; do
|
|
|
- if [[ "$CHANGE" == "$ROOT"* ]]; then
|
|
|
- PACKAGES+=$(echo "$ROOT" | sed -e 's@\(.*\)/@\1 @')
|
|
|
+ if [[ "$CHANGE" == "$ROOT/"* ]] || [[ "$CHANGE" == "$ROOT/Makefile" ]]; then
|
|
|
+ PACKAGE_NAME=$(echo "$ROOT" | awk -F/ '{print $NF}')
|
|
|
+ PACKAGES+="$PACKAGE_NAME "
|
|
|
break
|
|
|
fi
|
|
|
done
|
|
|
done
|
|
|
- # fallback to test packages if nothing explicitly changes this is
|
|
|
- # should run if other mechanics in packages.git changed
|
|
|
+
|
|
|
PACKAGES="${PACKAGES:-luci-app-ssr-plus}"
|
|
|
-
|
|
|
- echo "Building $PACKAGES"
|
|
|
+
|
|
|
+ echo "Building packages: $PACKAGES"
|
|
|
echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV
|
|
|
|
|
|
- name: Build
|
|
|
- uses: immortalwrt/gh-action-sdk@v4
|
|
|
+ uses: immortalwrt/gh-action-sdk@v5
|
|
|
env:
|
|
|
ARCH: ${{ matrix.arch }}
|
|
|
FEEDNAME: packages_ci
|
|
|
V: s
|
|
|
+ with:
|
|
|
+ target: ${{ matrix.target }}
|
|
|
+ packages: ${{ env.PACKAGES }}
|
|
|
|
|
|
- name: Move created packages to project dir
|
|
|
- run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.ipk . || true
|
|
|
+ run: |
|
|
|
+ mkdir -p artifacts/packages
|
|
|
+ cp -f bin/packages/${{ matrix.arch }}/packages_ci/*.ipk artifacts/packages/ 2>/dev/null || true
|
|
|
+ cp -f bin/packages/${{ matrix.arch }}/packages_ci/Packages* artifacts/ 2>/dev/null || true
|
|
|
+
|
|
|
+ - name: Collect build logs
|
|
|
+ run: |
|
|
|
+ mkdir -p artifacts/logs
|
|
|
+ cp -f logs/* artifacts/logs/ 2>/dev/null || true
|
|
|
+ cp -f .config artifacts/ 2>/dev/null || true
|
|
|
+ cp -f tmp/.config* artifacts/ 2>/dev/null || true
|
|
|
|
|
|
- name: Collect metadata
|
|
|
run: |
|
|
|
+ if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
|
|
|
+ PRNUMBER=$(echo $GITHUB_REF | awk -F/ '{print $3}')
|
|
|
+ else
|
|
|
+ PRNUMBER=""
|
|
|
+ fi
|
|
|
+
|
|
|
MERGE_ID=$(git rev-parse --short HEAD)
|
|
|
echo "MERGE_ID=$MERGE_ID" >> $GITHUB_ENV
|
|
|
- echo "BASE_ID=$(git rev-parse --short HEAD^1)" >> $GITHUB_ENV
|
|
|
- echo "HEAD_ID=$(git rev-parse --short HEAD^2)" >> $GITHUB_ENV
|
|
|
- PRNUMBER=${GITHUB_REF_NAME%/merge}
|
|
|
echo "PRNUMBER=$PRNUMBER" >> $GITHUB_ENV
|
|
|
- echo "ARCHIVE_NAME=${{matrix.arch}}-PR$PRNUMBER-$MERGE_ID" >> $GITHUB_ENV
|
|
|
+ echo "ARCHIVE_NAME=${{matrix.arch}}-PR${PRNUMBER}-$MERGE_ID" >> $GITHUB_ENV
|
|
|
|
|
|
- name: Generate metadata
|
|
|
run: |
|
|
|
cat << _EOF_ > PKG-INFO
|
|
|
- Metadata-Version: 2.1
|
|
|
- Name: ${{env.ARCHIVE_NAME}}
|
|
|
- Version: $BRANCH
|
|
|
- Author: $GITHUB_ACTOR
|
|
|
- Home-page: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/$PRNUMBER
|
|
|
- Download-URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
|
|
|
- Summary: $PACKAGES
|
|
|
- Platform: ${{ matrix.arch }}
|
|
|
-
|
|
|
- Packages for ImmortalWrt $BRANCH running on ${{matrix.arch}}, built from PR $PRNUMBER
|
|
|
- at commit $HEAD_ID, against $BRANCH at commit $BASE_ID, with merge SHA $MERGE_ID.
|
|
|
-
|
|
|
- Modified packages:
|
|
|
- _EOF_
|
|
|
+Metadata-Version: 2.1
|
|
|
+Name: ${{env.ARCHIVE_NAME}}
|
|
|
+Version: $BRANCH
|
|
|
+Author: $GITHUB_ACTOR
|
|
|
+Home-page: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/$PRNUMBER
|
|
|
+Download-URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
|
|
|
+Summary: $PACKAGES
|
|
|
+Platform: ${{ matrix.arch }}
|
|
|
+
|
|
|
+Packages for ImmortalWrt $BRANCH running on ${{matrix.arch}}, built from PR $PRNUMBER
|
|
|
+at commit $HEAD_ID, against $BRANCH at commit $BASE_ID, with merge SHA $MERGE_ID.
|
|
|
+
|
|
|
+Modified packages:
|
|
|
+_EOF_
|
|
|
for p in $PACKAGES
|
|
|
do
|
|
|
- echo " "$p >> PKG-INFO
|
|
|
+ echo " $p" >> PKG-INFO
|
|
|
done
|
|
|
echo >> PKG-INFO
|
|
|
- echo Full file listing: >> PKG-INFO
|
|
|
- ls -al *.ipk >> PKG-INFO || true
|
|
|
+ echo "Full file listing:" >> PKG-INFO
|
|
|
+ ls -al artifacts/packages/*.ipk 2>/dev/null || echo "No packages built" >> PKG-INFO
|
|
|
cat PKG-INFO
|
|
|
|
|
|
- name: Store packages
|
|
@@ -130,9 +155,8 @@ jobs:
|
|
|
with:
|
|
|
name: ${{env.ARCHIVE_NAME}}-packages
|
|
|
path: |
|
|
|
- Packages
|
|
|
- Packages.*
|
|
|
- *.ipk
|
|
|
+ artifacts/packages/
|
|
|
+ artifacts/Packages*
|
|
|
PKG-INFO
|
|
|
|
|
|
- name: Store logs
|
|
@@ -140,5 +164,6 @@ jobs:
|
|
|
with:
|
|
|
name: ${{env.ARCHIVE_NAME}}-logs
|
|
|
path: |
|
|
|
- logs/
|
|
|
+ artifacts/logs/
|
|
|
+ artifacts/.config*
|
|
|
PKG-INFO
|