workflows/.github/workflows/test-packaging.yaml
Jan Lindemann 1f607d922f
test-packaging.yaml: Add in-tree integration tests
Add a post-build step which runs integration tests against the source
code repository (as opposed to against the installed package).

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:50:27 +02:00

79 lines
2.5 KiB
YAML

name: Reusable packaging test job
on:
workflow_call:
enable-email-notifications: true
jobs:
test:
name: Packaging - ${{ matrix.distro.name }}
runs-on: public-ci
strategy:
fail-fast: false
matrix:
distro:
- { image: "registry.janware.com/public/ci/runner/opensuse/tumbleweed:latest", name: "OpenSUSE Tumbleweed" }
- { image: "registry.janware.com/public/ci/runner/kali/rolling:latest", name: "Kali Linux" }
container:
image: ${{ matrix.distro.image }}
steps:
- name: Checkout repository
uses: ci/action-checkout@main-jw
with:
path: ${{ github.event.repository.name }}
working-directory: ${{ github.event.repository.name }}
persist-credentials: false
- name: Install jw-pkg from source
shell: bash
if: ${{ github.event.repository.name != 'jw-pkg' }}
run: |
set -euxo pipefail
export PROJECTS_DIR_REMOTE_BASE=${{ github.server_url }}
owner=janware
makefile=$PROJECTS_DIR_REMOTE_BASE/$owner/jw-pkg/raw/branch/master/make/projects-dir-minimal.mk
curl --create-dirs -o build-jw-foss/Makefile "$makefile"
make -C build-jw-foss pkg-manager-refresh
make -C build-jw-foss pkg-install-release-deps
OFFLINE=true make -C build-jw-foss pkg-rebuild-reinstall
- name: Install test-build dependencies
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" pkg-manager-refresh
make -C "${{ github.event.repository.name }}" pkg-install-testbuild-deps
- name: Run pre-build static code checks
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" check
- name: Build package
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" pkg-rebuild
- name: Run post-build static code checks
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" check
- name: Run post-build integration tests against repo
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" test
- name: Install package
shell: bash
run: |
set -euxo pipefail
make -C "${{ github.event.repository.name }}" pkg-reinstall