STR-376: create the machinery around polling and execution of bridge duties v2 #961
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) }} |