mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-30 20:43:02 +02:00
Merge pull request #1180 from kernelkit/misc
Build, test, and release workflow fixes
This commit is contained in:
@@ -27,10 +27,17 @@ Pull Requests
|
|||||||
Releases
|
Releases
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
Recommended checkpoints, use at your own discretion:
|
||||||
|
|
||||||
- Make at least one -betaN release to verify the GitHub workflow well in time release day
|
- Make at least one -betaN release to verify the GitHub workflow well in time release day
|
||||||
- Stuff happens, remember kernelkit/infix#735
|
- Stuff happens, remember kernelkit/infix#735
|
||||||
- Make at least one -rcN to flush out any issues in customer repos
|
- Make at least one -rcN to flush out any issues in customer repos
|
||||||
- Easy to forget adaptations/hacks in customer repos -- may need Infix change/support
|
- Easy to forget adaptations/hacks in customer repos -- may need Infix change/support
|
||||||
|
- Verify release artifacts (checksums, completeness, no corrupted files)
|
||||||
|
- Test on actual hardware for at least one architecture
|
||||||
|
- Review ChangeLog for completeness
|
||||||
|
- Check for release-blocking issues
|
||||||
|
- Verify generated GNS3 appliance, no marketplace update on -rc builds
|
||||||
- Ensure the markdown link for the release diff is updated
|
- Ensure the markdown link for the release diff is updated
|
||||||
- Ensure subrepos are tagged (can be automated, see kernelkit/infix#393)
|
- Ensure subrepos are tagged (can be automated, see kernelkit/infix#393)
|
||||||
- Sync tags for all repo. sync activities
|
- Sync tags for all repo. sync activities
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
name: Build Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
use_cache:
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build Infix ${{ inputs.version }} [${{ matrix.target }}]
|
||||||
|
runs-on: [ self-hosted, release ]
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
target: [aarch64, x86_64]
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
clean: true
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Set Release Variables
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
ver=${{ inputs.version }}
|
||||||
|
echo "ver=${ver}" >> $GITHUB_OUTPUT
|
||||||
|
fver=${ver#v}
|
||||||
|
target=${{ matrix.target }}-${fver}
|
||||||
|
echo "dir=infix-$target" >> $GITHUB_OUTPUT
|
||||||
|
echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Restore Cache of dl/
|
||||||
|
if: ${{ inputs.use_cache }}
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dl/
|
||||||
|
key: dl-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }}
|
||||||
|
restore-keys: |
|
||||||
|
dl-
|
||||||
|
|
||||||
|
- name: Restore Cache of .ccache/
|
||||||
|
if: ${{ inputs.use_cache }}
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: .ccache/
|
||||||
|
key: ccache-${{ matrix.target }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }}
|
||||||
|
restore-keys: |
|
||||||
|
ccache-${{ matrix.target }}-
|
||||||
|
ccache-
|
||||||
|
|
||||||
|
- name: Configure & Build
|
||||||
|
env:
|
||||||
|
INFIX_RELEASE: ${{ steps.vars.outputs.ver }}
|
||||||
|
run: |
|
||||||
|
target=${{ matrix.target }}_defconfig
|
||||||
|
echo "Building $target ..."
|
||||||
|
make $target
|
||||||
|
make
|
||||||
|
|
||||||
|
- name: Generate SBOM from Build
|
||||||
|
run: |
|
||||||
|
make legal-info
|
||||||
|
|
||||||
|
- name: Build test specification
|
||||||
|
run: |
|
||||||
|
make test-spec
|
||||||
|
|
||||||
|
- name: Prepare Artifacts
|
||||||
|
run: |
|
||||||
|
cd output/
|
||||||
|
mv images ${{ steps.vars.outputs.dir }}
|
||||||
|
ln -s ${{ steps.vars.outputs.dir }} images
|
||||||
|
tar cfz ${{ steps.vars.outputs.tgz }} ${{ steps.vars.outputs.dir }}
|
||||||
|
|
||||||
|
mv legal-info legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}
|
||||||
|
tar cfz legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}.tar.gz legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: artifact-${{ matrix.target }}
|
||||||
|
path: output/*.tar.gz
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: artifact-disk-image-${{ matrix.target }}
|
||||||
|
path: output/images/*.qcow2
|
||||||
@@ -35,7 +35,7 @@ on:
|
|||||||
parallel:
|
parallel:
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
NAME: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.name || inputs.name }}
|
NAME: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.name || inputs.name }}
|
||||||
@@ -110,6 +110,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make ${{ env.TARGET }}_defconfig
|
make ${{ env.TARGET }}_defconfig
|
||||||
|
|
||||||
|
- name: Cleanup stale containers and ports
|
||||||
|
run: |
|
||||||
|
podman rm -af || true
|
||||||
|
pkill -9 -f rootlessport || true
|
||||||
|
|
||||||
- name: Unit Test ${{ env.TARGET }}
|
- name: Unit Test ${{ env.TARGET }}
|
||||||
run: |
|
run: |
|
||||||
make test-unit
|
make test-unit
|
||||||
|
|||||||
@@ -18,87 +18,27 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
set-version:
|
||||||
if: github.repository == 'kernelkit/infix' && startsWith(github.ref, 'refs/tags/')
|
if: github.repository == 'kernelkit/infix' && startsWith(github.ref, 'refs/tags/')
|
||||||
name: Build Infix ${{ github.ref_name }} [${{ matrix.target }}]
|
runs-on: ubuntu-latest
|
||||||
runs-on: [ self-hosted, release ]
|
outputs:
|
||||||
strategy:
|
version: ${{ steps.set-ver.outputs.version }}
|
||||||
matrix:
|
|
||||||
target: [aarch64, x86_64]
|
|
||||||
fail-fast: false
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- id: set-ver
|
||||||
with:
|
|
||||||
clean: true
|
|
||||||
submodules: recursive
|
|
||||||
|
|
||||||
- name: Set Release Variables
|
|
||||||
id: vars
|
|
||||||
run: |
|
run: |
|
||||||
if [ -n "${{ inputs.version }}" ]; then
|
if [ -n "${{ inputs.version }}" ]; then
|
||||||
ver=${{ inputs.version }}
|
ver=${{ inputs.version }}
|
||||||
else
|
else
|
||||||
ver=${GITHUB_REF#refs/tags/}
|
ver=${GITHUB_REF#refs/tags/}
|
||||||
fi
|
fi
|
||||||
echo "ver=${ver}" >> $GITHUB_OUTPUT
|
echo "version=${ver}" >> $GITHUB_OUTPUT
|
||||||
fver=${ver#v}
|
|
||||||
target=${{ matrix.target }}-${fver}
|
|
||||||
echo "dir=infix-$target" >> $GITHUB_OUTPUT
|
|
||||||
echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Restore Cache of dl/
|
build:
|
||||||
uses: actions/cache@v4
|
needs: set-version
|
||||||
with:
|
uses: ./.github/workflows/build-release.yml
|
||||||
path: dl/
|
with:
|
||||||
key: dl-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }}
|
version: ${{ needs.set-version.outputs.version }}
|
||||||
restore-keys: |
|
use_cache: true
|
||||||
dl-
|
|
||||||
|
|
||||||
- name: Restore Cache of .ccache/
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: .ccache/
|
|
||||||
key: ccache-${{ matrix.target }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }}
|
|
||||||
restore-keys: |
|
|
||||||
ccache-${{ matrix.target }}-
|
|
||||||
ccache-
|
|
||||||
|
|
||||||
- name: Configure & Build
|
|
||||||
env:
|
|
||||||
INFIX_RELEASE: ${{ steps.vars.outputs.ver }}
|
|
||||||
run: |
|
|
||||||
target=${{ matrix.target }}_defconfig
|
|
||||||
echo "Building $target ..."
|
|
||||||
make $target
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Generate SBOM from Build
|
|
||||||
run: |
|
|
||||||
make legal-info
|
|
||||||
|
|
||||||
- name: Build test specification
|
|
||||||
run: |
|
|
||||||
make test-spec
|
|
||||||
|
|
||||||
- name: Prepare Artifacts
|
|
||||||
run: |
|
|
||||||
cd output/
|
|
||||||
mv images ${{ steps.vars.outputs.dir }}
|
|
||||||
ln -s ${{ steps.vars.outputs.dir }} images
|
|
||||||
tar cfz ${{ steps.vars.outputs.tgz }} ${{ steps.vars.outputs.dir }}
|
|
||||||
|
|
||||||
mv legal-info legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}
|
|
||||||
tar cfz legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}.tar.gz legal-info-${{ matrix.target }}-${{ steps.vars.outputs.ver }}
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: artifact-${{ matrix.target }}
|
|
||||||
path: output/*.tar.gz
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: artifact-disk-image-${{ matrix.target }}
|
|
||||||
path: output/images/*.qcow2
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
name: Release Infix ${{ github.ref_name }}
|
name: Release Infix ${{ github.ref_name }}
|
||||||
@@ -156,6 +96,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
awk '/^-----*$/{if (x == 1) exit; x=1;next}x' doc/ChangeLog.md \
|
awk '/^-----*$/{if (x == 1) exit; x=1;next}x' doc/ChangeLog.md \
|
||||||
|head -n -1 > release.md
|
|head -n -1 > release.md
|
||||||
|
echo "" >> release.md
|
||||||
|
echo "> [!TIP]" >> release.md
|
||||||
|
echo "> **Try Infix in GNS3!** Download the appliance from the [GNS3 Marketplace](https://gns3.com/marketplace/appliances/infix) to test Infix in a virtual network environment without hardware." >> release.md
|
||||||
cat release.md
|
cat release.md
|
||||||
|
|
||||||
- uses: ncipollo/release-action@v1
|
- uses: ncipollo/release-action@v1
|
||||||
|
|||||||
@@ -90,7 +90,8 @@ jobs:
|
|||||||
- name: Publish Test Result for ${{ env.TARGET }}
|
- name: Publish Test Result for ${{ env.TARGET }}
|
||||||
# Ensure this runs even if Regression Test fails
|
# Ensure this runs even if Regression Test fails
|
||||||
if: always()
|
if: always()
|
||||||
run: cat $TEST_PATH/.log/last/result-gh.md >> $GITHUB_STEP_SUMMARY
|
run: |
|
||||||
|
cat $TEST_PATH/.log/last/result-gh.md >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Generate Test Report for ${{ env.TARGET }}
|
- name: Generate Test Report for ${{ env.TARGET }}
|
||||||
# Ensure this runs even if Regression Test fails
|
# Ensure this runs even if Regression Test fails
|
||||||
|
|||||||
@@ -14,29 +14,61 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
# Gate all builds through this check to prevent wasted runs. Only run on
|
||||||
|
# 'labeled' events when the label is actually 'ci:main'. Concurrency control
|
||||||
|
# above handles canceling the 'opened' event when 'labeled' arrives quickly
|
||||||
|
# after (e.g., when creating a PR with ci:main already attached). See #1154.
|
||||||
|
check-trigger:
|
||||||
|
if: |
|
||||||
|
startsWith(github.repository, 'kernelkit/') &&
|
||||||
|
(github.event_name != 'pull_request' ||
|
||||||
|
github.event.action != 'labeled' ||
|
||||||
|
github.event.label.name == 'ci:main')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
x86_64_target: ${{ steps.set-targets.outputs.x86_64_target }}
|
||||||
|
aarch64_target: ${{ steps.set-targets.outputs.aarch64_target }}
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo "Triggering build, logging meta data ..."
|
||||||
|
echo "Event : ${{ github.event_name }}"
|
||||||
|
echo "Action : ${{ github.event.action }}"
|
||||||
|
echo "Ref : ${{ github.ref }}"
|
||||||
|
echo "PR : ${{ github.event.pull_request.number }}"
|
||||||
|
echo "Label : ${{ github.event.label.name }}"
|
||||||
|
- id: set-targets
|
||||||
|
run: |
|
||||||
|
if [[ "${{ github.event_name }}" == "pull_request" ]] && \
|
||||||
|
! echo '${{ toJSON(github.event.pull_request.labels.*.name) }}' \
|
||||||
|
| grep -q "ci:main"; then
|
||||||
|
echo "x86_64_target=x86_64_minimal" >> $GITHUB_OUTPUT
|
||||||
|
echo "aarch64_target=aarch64_minimal" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "x86_64_target=x86_64" >> $GITHUB_OUTPUT
|
||||||
|
echo "aarch64_target=aarch64" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
build-x86_64:
|
build-x86_64:
|
||||||
if: startsWith(github.repository, 'kernelkit/')
|
needs: check-trigger
|
||||||
uses: ./.github/workflows/build.yml
|
uses: ./.github/workflows/build.yml
|
||||||
with:
|
with:
|
||||||
name: "infix"
|
name: "infix"
|
||||||
target: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci:main') && 'x86_64_minimal' || 'x86_64' }}
|
target: ${{ needs.check-trigger.outputs.x86_64_target }}
|
||||||
|
|
||||||
build-aarch64:
|
build-aarch64:
|
||||||
if: startsWith(github.repository, 'kernelkit/')
|
needs: check-trigger
|
||||||
uses: ./.github/workflows/build.yml
|
uses: ./.github/workflows/build.yml
|
||||||
with:
|
with:
|
||||||
name: "infix"
|
name: "infix"
|
||||||
target: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci:main') && 'aarch64_minimal' || 'aarch64' }}
|
target: ${{ needs.check-trigger.outputs.aarch64_target }}
|
||||||
|
|
||||||
test-run-x86_64:
|
test-run-x86_64:
|
||||||
if: startsWith(github.repository, 'kernelkit/')
|
needs: [check-trigger, build-x86_64]
|
||||||
needs: build-x86_64
|
|
||||||
uses: ./.github/workflows/test.yml
|
uses: ./.github/workflows/test.yml
|
||||||
with:
|
with:
|
||||||
target: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci:main') && 'x86_64_minimal' || 'x86_64' }}
|
target: ${{ needs.check-trigger.outputs.x86_64_target }}
|
||||||
name: "infix"
|
name: "infix"
|
||||||
|
|
||||||
test-publish-x86_64:
|
test-publish-x86_64:
|
||||||
if: startsWith(github.repository, 'kernelkit/')
|
|
||||||
needs: test-run-x86_64
|
needs: test-run-x86_64
|
||||||
uses: ./.github/workflows/publish.yml
|
uses: ./.github/workflows/publish.yml
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# Weekly release build to catch flaky tests and verify clean builds.
|
||||||
|
# Runs without caches (ccache) to ensure reproducibility. See issue #1003.
|
||||||
|
name: Weekly Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '5 0 * * 6' # Saturday at 00:05 UTC, same as Coverity
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
if: github.repository == 'kernelkit/infix'
|
||||||
|
uses: ./.github/workflows/build-release.yml
|
||||||
|
with:
|
||||||
|
version: "latest"
|
||||||
|
use_cache: false
|
||||||
|
|
||||||
|
publish:
|
||||||
|
name: Publish Weekly Build
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
pattern: "artifact-*"
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Create checksums
|
||||||
|
run: |
|
||||||
|
for file in *.tar.gz; do
|
||||||
|
sha256sum $file > $file.sha256
|
||||||
|
done
|
||||||
|
if ls *.qcow2 &>/dev/null; then
|
||||||
|
for file in *.qcow2; do
|
||||||
|
sha256sum "$file" > "$file.sha256"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
- uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
tag: latest
|
||||||
|
name: "Latest Weekly Build"
|
||||||
|
prerelease: true
|
||||||
|
makeLatest: false
|
||||||
|
allowUpdates: true
|
||||||
|
removeArtifacts: true
|
||||||
|
body: |
|
||||||
|
Automated weekly build from `${{ github.sha }}`.
|
||||||
|
|
||||||
|
This build runs without caches to catch potential flaky tests and build issues.
|
||||||
|
Not intended for production use - use official releases instead.
|
||||||
|
|
||||||
|
**Commit:** ${{ github.sha }}
|
||||||
|
**Built:** ${{ github.run_id }}
|
||||||
|
artifacts: "*.tar.gz*,*.qcow2*"
|
||||||
|
|
||||||
|
- name: Summary
|
||||||
|
run: |
|
||||||
|
cat <<EOF >> $GITHUB_STEP_SUMMARY
|
||||||
|
# Weekly Build Published! :package:
|
||||||
|
|
||||||
|
Latest artifacts uploaded to:
|
||||||
|
<https://github.com/kernelkit/infix/releases/tag/latest>
|
||||||
|
|
||||||
|
Built from commit: \`${{ github.sha }}\`
|
||||||
|
EOF
|
||||||
@@ -169,9 +169,14 @@ interfaces {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
admin@host-12-34-56:/config/interface/eth0/> leave
|
admin@host-12-34-56:/config/interface/eth0/> leave
|
||||||
admin@host-12-34-56:/> show interfaces brief
|
admin@host-12-34-56:/> show interfaces
|
||||||
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
|
INTERFACE PROTOCOL STATE DATA
|
||||||
eth0 UP 52:54:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
|
lo loopback UNKNOWN 00:00:00:00:00:00
|
||||||
|
ipv4 127.0.0.1/8 (static)
|
||||||
|
ipv6 ::1/128 (static)
|
||||||
|
eth0 ethernet UP 52:54:00:12:34:56
|
||||||
|
ipv4 192.168.2.200/24 (static)
|
||||||
|
ipv6 fe80::5054:ff:fe12:3456/64 (link-layer)
|
||||||
admin@host-12-34-56:/> show ip brief
|
admin@host-12-34-56:/> show ip brief
|
||||||
lo UNKNOWN 127.0.0.1/8 ::1/128
|
lo UNKNOWN 127.0.0.1/8 ::1/128
|
||||||
eth0 UP 192.168.2.200/24 fe80::5054:ff:fe12:3456/64
|
eth0 UP 192.168.2.200/24 fe80::5054:ff:fe12:3456/64
|
||||||
|
|||||||
+6
-4
@@ -116,10 +116,12 @@ When configuring, e.g., `dns-server`, or `router` options with the value
|
|||||||
subnet. For example:
|
subnet. For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
admin@example:/> show interfaces brief
|
admin@example:/> show interfaces
|
||||||
Interface Status Address
|
INTERFACE PROTOCOL STATE DATA
|
||||||
eth0 UP 192.168.1.1/24
|
eth0 ethernet UP 02:00:00:00:00:00
|
||||||
eth1 UP 192.168.2.1/24
|
ipv4 192.168.1.1/24 (static)
|
||||||
|
eth1 ethernet UP 02:00:00:00:00:01
|
||||||
|
ipv4 192.168.2.1/24 (static)
|
||||||
|
|
||||||
admin@example:/config/dhcp-server/subnet/192.168.1.0/24/> edit option dns-server
|
admin@example:/config/dhcp-server/subnet/192.168.1.0/24/> edit option dns-server
|
||||||
admin@example:/config/dhcp-server/subnet/192.168.1.0/24/option/dns-server/> set address auto
|
admin@example:/config/dhcp-server/subnet/192.168.1.0/24/option/dns-server/> set address auto
|
||||||
|
|||||||
+1
-1
Submodule test/9pm updated: ae54b40853...0cea38dc1e
@@ -1,6 +1,7 @@
|
|||||||
base-dir := $(lastword $(subst :, ,$(BR2_EXTERNAL)))
|
base-dir := $(lastword $(subst :, ,$(BR2_EXTERNAL)))
|
||||||
test-dir ?= $(BR2_EXTERNAL_INFIX_PATH)/test
|
test-dir ?= $(BR2_EXTERNAL_INFIX_PATH)/test
|
||||||
ninepm := $(BR2_EXTERNAL_INFIX_PATH)/test/9pm/9pm.py
|
ninepm := $(BR2_EXTERNAL_INFIX_PATH)/test/9pm/9pm.py
|
||||||
|
ninepm_report := $(BR2_EXTERNAL_INFIX_PATH)/test/9pm/report.py
|
||||||
NINEPM_PROJ_CONF ?= $(BR2_EXTERNAL_INFIX_PATH)/test/9pm-proj.yaml
|
NINEPM_PROJ_CONF ?= $(BR2_EXTERNAL_INFIX_PATH)/test/9pm-proj.yaml
|
||||||
spec-dir := $(test-dir)/spec
|
spec-dir := $(test-dir)/spec
|
||||||
test-specification := $(BINARIES_DIR)/test-specification.pdf
|
test-specification := $(BINARIES_DIR)/test-specification.pdf
|
||||||
@@ -29,6 +30,8 @@ endif
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
$(test-dir)/env -r $(base) $(mode) $(binaries) $(pkg-$(ARCH)) $(ninepm) -v $(TESTS)
|
$(test-dir)/env -r $(base) $(mode) $(binaries) $(pkg-$(ARCH)) $(ninepm) -v $(TESTS)
|
||||||
|
$(ninepm_report) github $(test-dir)/.log/last/result.json
|
||||||
|
$(ninepm_report) asciidoc $(test-dir)/.log/last/result.json
|
||||||
|
|
||||||
test-sh:
|
test-sh:
|
||||||
$(test-dir)/env $(base) $(mode) $(binaries) $(pkg-$(ARCH)) -i /bin/sh
|
$(test-dir)/env $(base) $(mode) $(binaries) $(pkg-$(ARCH)) -i /bin/sh
|
||||||
|
|||||||
Reference in New Issue
Block a user