chore: use dataflow to validate http client #38
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: main CI workflow | |
permissions: read-all | |
concurrency: | |
group: ci-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
branches: [main] | |
env: | |
WAST_TARGET: wasm32-wasip2 | |
FLUVIO_URL: https://hub.infinyon.cloud/install/install.sh | |
FLUVIO_CHANNEL: stable | |
SDF_VERSION: sdf-beta5 | |
jobs: | |
build-guest: | |
name: Build Guest | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Source Code | |
uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: install wasm target | |
run: | | |
rustup target add ${{ env.WAST_TARGET }} | |
- name: Setup Rust Cache | |
uses: Swatinem/rust-cache@v2 | |
timeout-minutes: 10 | |
- name: Build | |
timeout-minutes: 40 | |
run: make build-guest | |
e2e-test: | |
name: E2E Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Source Code | |
uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: install wasm target | |
run: | | |
rustup target add ${{ env.WAST_TARGET }} | |
- name: Setup Rust Cache | |
uses: Swatinem/rust-cache@v2 | |
timeout-minutes: 10 | |
- name: Build HTTP Server | |
run: make build-http | |
- name: Start HTTP Server | |
run: make run-http | |
- name: Install FVM and Fluvio | |
timeout-minutes: 10 | |
run: | | |
curl -fsS ${{ env.FLUVIO_URL }} | bash | |
echo "$HOME/.fvm/bin" >> $GITHUB_PATH | |
- name: Install SDF | |
run: | | |
fvm install ${{ ENV.SDF_VERSION }} | |
echo "$HOME/.fluvio/bin" >> $GITHUB_PATH | |
- name: Test SDF | |
run: sdf version | |
- name: Install Local Fluvio cluster | |
timeout-minutes: 3 | |
run: fluvio cluster start | |
- name: Start dataflow | |
run: | | |
make -C e2e-test run-ci | |
sleep 120 | |
- name: Test | |
run: | | |
cat /tmp/sdf.log | |
make validate-dataflow | |
# To satisfy the merge queue check | |
done: | |
name: Done | |
needs: | |
- build-guest | |
- e2e-test | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- name: Dump needs context | |
env: | |
CONTEXT: ${{ toJson(needs) }} | |
run: | | |
echo -e "\033[33;1;4mDump context\033[0m" | |
echo -e "$CONTEXT\n" | |
- name: Report failure on cancellation | |
if: ${{ contains(needs.*.result, 'cancelled') || cancelled() }} | |
run: exit 1 | |
- name: Failing test and build | |
if: ${{ contains(needs.*.result, 'failure') }} | |
run: exit 1 | |
- name: Successful test and build | |
if: ${{ !(contains(needs.*.result, 'failure')) }} | |
run: exit 0 |