Skip to content

STR-376: create the machinery around polling and execution of bridge duties v2 #942

STR-376: create the machinery around polling and execution of bridge duties v2

STR-376: create the machinery around polling and execution of bridge duties v2 #942

Workflow file for this run

name: Run functional tests
on:
pull_request:
merge_group:
push:
branches: [master]
env:
CARGO_TERM_COLOR: always
jobs:
lint:
name: Lint test files
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "^3.10" # Keep in sync with `pyproject.toml`
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python -
echo "${HOME}/.local/bin" >> $GITHUB_PATH
- name: Configure Poetry to create the virtual environment inside the project
run: poetry config virtualenvs.in-project true
- name: Install python dependencies
run: cd functional-tests && poetry install --no-root && cd -
- name: Check formatting
run: cd functional-tests && poetry run ruff format --check && cd -
- name: Lint
run: cd functional-tests && poetry run ruff check && cd -
run:
name: Run functional tests
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Cleanup Space
uses: ./.github/actions/cleanup
- name: Install bitcoind
env:
BITCOIND_VERSION: "27.0"
BITCOIND_ARCH: "x86_64-linux-gnu"
SHASUM: "2a6974c5486f528793c79d42694b5987401e4a43c97f62b1383abf35bcee44a8"
run: |
wget -q "https://bitcoin.org/bin/bitcoin-core-${{ env.BITCOIND_VERSION }}/bitcoin-${{ env.BITCOIND_VERSION }}-${{ env.BITCOIND_ARCH }}.tar.gz"
sha256sum -c <<< "$SHASUM bitcoin-${{ env.BITCOIND_VERSION }}-${{ env.BITCOIND_ARCH }}.tar.gz"
tar xzf "bitcoin-${{ env.BITCOIND_VERSION }}-${{ env.BITCOIND_ARCH }}.tar.gz"
sudo install -m 0755 -t /usr/local/bin bitcoin-${{ env.BITCOIND_VERSION }}/bin/*
bitcoind --version
rm -rf "bitcoin-${{ env.BITCOIND_VERSION }}" "bitcoin-${{ env.BITCOIND_VERSION }}-${{ env.BITCOIND_ARCH }}.tar.gz"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "^3.10" # Keep in sync with `pyproject.toml`
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python -
echo "${HOME}/.local/bin" >> $GITHUB_PATH
- name: Configure Poetry to create the virtual environment inside the project
run: poetry config virtualenvs.in-project true
- name: Install python dependencies
run: cd functional-tests && poetry install --no-root && cd -
- name: Set up Rust
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly-2024-07-27
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build Cargo project
run: cargo build --locked
- name: Run functional tests (1)
id: funcTestsRun1
continue-on-error: true
run: |
export PATH=$(realpath target/debug/):$PATH
which alpen-express-sequencer
cd functional-tests && \
poetry run python entry.py
# Run again just to be sure as some tests are flaky
- name: Run functional tests (2)
if: steps.funcTestsRun1.outcome == 'failure'
run: |
export PATH=$(realpath target/debug/):$PATH
which alpen-express-sequencer
cd functional-tests && \
poetry run python entry.py
functional-tests-success:
name: Check that all checks pass
runs-on: ubuntu-latest
if: always()
needs: [lint, run]
timeout-minutes: 60
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}