Skip to content

ci: include reserved_storage no-space tests in e2e job #1664

ci: include reserved_storage no-space tests in e2e job

ci: include reserved_storage no-space tests in e2e job #1664

Workflow file for this run

name: Aklite CI Tests
on:
push:
pull_request:
branches:
- main
permissions:
checks: write
pull-requests: write
contents: read
packages: write
jobs:
clang:
name: Clang Format And Tidy
runs-on: ubuntu-latest
container:
image: foundries/aklite-dev
env:
CXX: clang++
CC: clang
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory /__w/aktualizr-lite/aktualizr-lite
- run: git submodule update --init --recursive
- name: config
run: make -f dev-flow.mk config
- name: format
run: make -f dev-flow.mk format
- name: tidy
run: make -f dev-flow.mk tidy
refresh-ccache-dev:
name: Refresh ccache for development environment
runs-on: ubuntu-latest
container:
image: foundries/aklite-dev
env:
CXX: clang++
CC: clang
CCACHE_DIR: /__w/aktualizr-lite/aktualizr-lite/.ccache
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory /__w/aktualizr-lite/aktualizr-lite
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: /__w/aktualizr-lite/aktualizr-lite/.ccache
key: dev-ccache-${{ github.sha }}
restore-keys: |
dev-ccache-
- name: build
run: make -f dev-flow.mk config build
refresh-ccache-e2e:
name: Refresh ccache for e2e tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
garage-tools:
name: Build Garage Tools
runs-on: ubuntu-latest
needs: refresh-ccache-dev
container:
image: foundries/aklite-dev
env:
CXX: clang++
CC: clang
CCACHE_DIR: /__w/aktualizr-lite/aktualizr-lite/.ccache
steps:
- uses: actions/checkout@v3
- run: git config --global --add safe.directory /__w/aktualizr-lite/aktualizr-lite
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: /__w/aktualizr-lite/aktualizr-lite/.ccache
key: dev-ccache-garage-${{ github.sha }}
restore-keys: |
dev-ccache-garage-
dev-ccache-
- name: build garage tools
run: make -f dev-flow.mk garage-tools
- name: check garage tools
run: |
if [[ ! -f build-garage/aktualizr/src/sota_tools/garage-sign/bin/garage-sign ]]; then
echo "Failed to build garage-sign!"
exit 1
fi
if [[ ! -f build-garage/aktualizr/src/sota_tools/garage-push ]]; then
echo "Failed to build garage-push!"
exit 1
fi
test:
name: Tests
needs: refresh-ccache-dev
runs-on: ubuntu-latest
container:
image: foundries/aklite-dev
env:
CXX: clang++
CC: clang
CCACHE_DIR: /__w/aktualizr-lite/aktualizr-lite/.ccache
steps:
- uses: actions/checkout@v3
- run: git config --global --add safe.directory /__w/aktualizr-lite/aktualizr-lite
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: /__w/aktualizr-lite/aktualizr-lite/.ccache
key: dev-ccache-${{ github.sha }}
restore-keys: |
dev-ccache-
- name: test
run: make -f dev-flow.mk config build test
e2e-test-basic-online-single-step:
name: Basic online, single step end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[False-True or test_update_to_latest[False-True'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
e2e-test-basic-online-granular-steps-no-delay-apps:
name: Basic online, granular steps, no delay start apps end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[False-False-False or test_update_to_latest[False-False'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
e2e-test-basic-online-granular-steps-delay-apps:
name: Basic online, granular steps, delay start apps end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[False-False-True'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
e2e-test-basic-offline-single-step:
name: Basic offline, single step end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[True-True or test_update_to_latest[True-True'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
E2E_TEST_OSTREE_TGZ: ${{ secrets.E2E_TEST_OSTREE_TGZ }}
e2e-test-basic-offline-granular-steps-no-delay-apps:
name: Basic offline, granular steps, no delay start apps end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[True-False-False or test_update_to_latest[True-False'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
E2E_TEST_OSTREE_TGZ: ${{ secrets.E2E_TEST_OSTREE_TGZ }}
e2e-test-basic-offline-granular-steps-delay-apps:
name: Basic offline, granular steps, delay start apps end-to-end tests
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_incremental_updates[True-False-True'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}
E2E_TEST_OSTREE_TGZ: ${{ secrets.E2E_TEST_OSTREE_TGZ }}
e2e-test-1:
name: End-to-end tests additional set
runs-on: ubuntu-latest
needs: refresh-ccache-e2e
steps:
- uses: actions/checkout@v4
- run: git config --global --add safe.directory ${{ github.workspace }}
- run: git submodule update --init --recursive
- name: Restore ccache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.ccache
key: e2e-ccache-${{ github.sha }}
restore-keys: |
e2e-ccache-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if image exists # Fallback to master image if branch-specific image doesn't exist
id: check_image
run: |
if docker manifest inspect ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }} > /dev/null 2>&1; then
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "AKLITE_E2E_IMAGE=ghcr.io/${{ github.repository }}/aklite-e2e-test:master" >> $GITHUB_ENV
fi
- run: ./dev-shell-e2e-test.sh make -f dev-flow.mk config build
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
- run: ./dev-shell-e2e-test.sh pytest docker-e2e-test/e2e-test.py -k 'test_no_space[False or test_no_space_reserved_storage[False or test_reserved_storage_low_allows_update[False or test_forced_sync or test_bad_network or test_kill_process'
env:
AKLITE_E2E_IMAGE: ${{ env.AKLITE_E2E_IMAGE }}
FACTORY: ${{ secrets.E2E_TEST_FACTORY }}
BASE_TARGET_VERSION: ${{ secrets.E2E_TEST_BASE_TARGET_VERSION }}
USER_TOKEN: ${{ secrets.E2E_TEST_USER_TOKEN }}
TAG: ${{secrets.E2E_TEST_TAG}}