Skip to content

Commit

Permalink
Run some multi-package tests in CI
Browse files Browse the repository at this point in the history
Multi-package tests were missing in the CI and they are important. This
adds them.
  • Loading branch information
Kixunil committed Jul 4, 2024
1 parent 817af68 commit 52a958e
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 4 deletions.
78 changes: 78 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ jobs:
sudo chown -R $USER $PWD
test:
if: false # disabled for experiments with multi-package testing
needs: [build, prepare]
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -171,3 +172,80 @@ jobs:
- name: Fix the Dir Permission for Post checkout
run: |
sudo chown -R $USER $PWD
test-multi-package:
needs: [build, prepare]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test: ["btcpayserver-regtest", "electrum"]
steps:
- uses: actions/checkout@v2
- name: Setup Test Prefix
run: |
echo "TEST_PREFIX=sudo chown -R $USER_NAME $BUILD_DIR && cd $BUILD_DIR && make BUILD_DIR=$BUILD_DIR/build" >> $GITHUB_ENV
- name: Prepare Podman Container Running Environment
run: |
sudo apt-get update
sudo apt-get upgrade podman
- name: Fetch CADR image cache
id: cache-cadr-image
uses: actions/cache/restore@v3
env:
cache-name: cache-cadr-image
with:
path: CADR_image.tar
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }}
- name: Load Running Environment Image
run: |
$PODMAN_CMD load < CADR_image.tar
mkdir build
- name: Download Pre-built Debian Packages
uses: thecodenebula/download-artifact@e9e49e9bbce8ff2b901957ee034714cab099644a
with:
#name: ${{ join(fromJson(needs.prepare.outputs.sources), '\n') }}
path: packages
- name: Test multi-package CADR integration
run: |
mkdir -p build
mv packages/*/*.deb build/
eval $SPAWN_CONTAINER
eval $EXECUTE_CMD bash -c "\"$TEST_PREFIX test-here-multi-package-${{ matrix.test }}\""
$PODMAN_CMD rm -f $CONTAINER_NAME
- name: Fix the Dir Permission for Post checkout
run: |
sudo chown -R $USER $PWD
# info:
# needs: [prepare]
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v2
# - name: Setup Test Prefix
# run: |
# echo "TEST_PREFIX=sudo chown -R $USER_NAME $BUILD_DIR && cd $BUILD_DIR && make BUILD_DIR=$BUILD_DIR/build" >> $GITHUB_ENV
# - name: Prepare Podman Container Running Environment
# run: |
# sudo apt-get update
# sudo apt-get upgrade podman
# - name: Fetch CADR image cache
# id: cache-cadr-image
# uses: actions/cache/restore@v3
# env:
# cache-name: cache-cadr-image
# with:
# path: CADR_image.tar
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Dockerfile', 'debcrafter-version', 'tests/data/microsoft_apt.list', 'tests/data/microsoft_key.gpg') }}
# - name: Load Running Environment Image
# run: |
# $PODMAN_CMD load < CADR_image.tar
# mkdir build
# - name: Print packages
# run: |
# eval $SPAWN_CONTAINER
# eval $EXECUTE_CMD bash -c "echo $USER"
# $PODMAN_CMD rm -f $CONTAINER_NAME
# - name: Fix the Dir Permission for Post checkout
# run: |
# sudo chown -R $USER $PWD
16 changes: 14 additions & 2 deletions tests/multi-package/btcpayserver-regtest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,19 @@ preload_config

echo '127.0.0.1 example.com' | sudo tee -a /etc/hosts >/dev/null

sudo apt-get install -y bitcoin-regtest lnd btcpayserver python3-selenium selfhost-clearnet python3-lnpbp-testkit
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ];
then
dbus_launch=dbus-launch
dbus_x11=dbus-x11
else
dbus_launch=true
fi

sudo apt-get install -y bitcoin-regtest lnd btcpayserver python3-selenium selfhost-clearnet python3-lnpbp-testkit $dbus_x11

eval `$dbus_launch`

echo "Starting selenium test" >&2
$test_dir/multi-package/btcpayserver-regtest/selenium_after_install.py
$test_dir/multi-package/btcpayserver-regtest/selenium_after_install.py &
sleep 1m
systemctl --user status [email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ def is_synced(self):
eprint(response.text)
return response.json()["isFullySynched"]

network().warm_up()
try:
network().warm_up()
except:
subprocess.run(["systemctl", "--user", "status", "[email protected]"])
raise

nbxplorer = NBXplorer()

Expand All @@ -50,6 +54,8 @@ def is_synced(self):

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("ignore-certificate-errors")
if "DISPLAY" not in os.environ:
chrome_options.add_argument("headless=new")
driver = webdriver.Chrome(chrome_options=chrome_options)

eprint("Registering an admin account")
Expand Down
2 changes: 1 addition & 1 deletion tests/multi-package/electrum.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ test_dir="$(realpath "$(dirname "$0")/..")"

preload_config

sudo apt-get install -y bitcoin-regtest bitcoin-cli electrs electrum-trustless-regtest jq
sudo apt-get install -y bitcoin-regtest bitcoin-cli electrs electrum-trustless-regtest jq libfuse2 fuse3

# Heavily inspired by the one in electrs itself

Expand Down

0 comments on commit 52a958e

Please sign in to comment.