From 36dbbb4f3c7e4e8edc00beea3b09cb0bae951541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Goens?= Date: Wed, 28 Feb 2024 14:51:58 +0100 Subject: [PATCH 1/2] add some code to bash script to fail if (unexpected) tests fail --- Lean/Egg/Tests/run_tests.sh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/Lean/Egg/Tests/run_tests.sh b/Lean/Egg/Tests/run_tests.sh index 0a53d769b4..2e92fea1e9 100755 --- a/Lean/Egg/Tests/run_tests.sh +++ b/Lean/Egg/Tests/run_tests.sh @@ -1,11 +1,14 @@ -#!/bin/bash +#!/usr/bin/env bash tests_dir="$(realpath -s "$(dirname "$0")")" pkg_dir="${tests_dir}/../../.." module_prefix="Egg.Tests." +expected_fail="WIP" cd "$pkg_dir" +status=0 + for file in "$tests_dir"/*; do if [[ -f "$file" ]]; then if [[ "$file" == *".lean" ]]; then @@ -17,13 +20,26 @@ for file in "$tests_dir"/*; do if [[ $? -eq 0 ]]; then if grep -q "sorry" "$file"; then - echo -e "\r🟡 ${file_name} " + echo -e "\r🟡 ${file_name} " else - echo -e "\r✅ ${file_name} " + echo -e "\r✅ ${file_name} " fi else - echo -e "\r❌ ${file_name} " + expected=0 + for name in $expected_fail; do + if [ "$name" = "$file_name" ]; then + expected=1 + echo -e "\r❌ ${file_name} (expected)" + break + fi + done + if [[ $expected -eq 0 ]]; then + echo -e "\r❌ ${file_name} " + status=1 + fi fi fi fi -done \ No newline at end of file +done + +exit $status From 0bff386f3576f3ebc763e37fad2067a547fc5fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Goens?= Date: Wed, 28 Feb 2024 14:57:16 +0100 Subject: [PATCH 2/2] add CI script --- .github/workflows/ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..58308e142e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: build & test +on: + push: + branches: + - "main" + pull_request: + merge_group: + +permissions: + contents: write + +jobs: + build: + name: build and test code + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install elan + run: | + set -o pipefail + curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- --default-toolchain none -y + ~/.elan/bin/lean --version + echo "$HOME/.elan/bin" >> $GITHUB_PATH + + - name: Compile Library + run: | + lake build + + - name: Run Tests + run: | + cd Lean/Egg/Tests && ./run_tests.sh