[FEAT] Implement builtin of exit #88
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: Build and Test | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
unit_test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository to incoming PR | |
uses: actions/checkout@v4 | |
- name: Clean the storage | |
run: | | |
rm -rf $HOME/42_minishell_tester | |
rm -rf $HOME/pr_test_result*.txt | |
rm -rf $HOME/main_test_result*.txt | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
- name: Set up build environment | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential valgrind | |
- name: Compile with Makefile | |
run: make | |
- name: Set up testing framework | |
run: | | |
git clone https://github.com/LeaYeh/42_minishell_tester.git | |
cp -r 42_minishell_tester $HOME | |
chmod +x $HOME/42_minishell_tester/tester.sh | |
- name: Check memory leaks | |
run: $HOME/42_minishell_tester/tester.sh vm | |
env: | |
GH_BRANCH: "IGNORE" | |
- name: Cleanup before test | |
run: make fclean | |
- name: Set up PR failed count | |
run: $HOME/42_minishell_tester/tester.sh m > $HOME/pr_test_result.txt | |
env: | |
GH_BRANCH: "PR_FAILED_COUNT" | |
- name: Checkout main branch | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
- name: Cleanup before test | |
run: make fclean | |
- name: Set up main failed count | |
run: $HOME/42_minishell_tester/tester.sh m > $HOME/main_test_result.txt | |
env: | |
GH_BRANCH: "MAIN_FAILED_COUNT" | |
- name: Compare failed count | |
id: comparison | |
run: | | |
echo "MAIN_FAILED_COUNT: $MAIN_FAILED_COUNT" | |
echo "PR_FAILED_COUNT: $PR_FAILED_COUNT" | |
if [ $PR_FAILED_COUNT -gt $MAIN_FAILED_COUNT ]; then | |
echo "PR_FAILED_COUNT is greater than MAIN_FAILED_COUNT" | |
exit 1 | |
else | |
echo "PR_FAILED_COUNT is less than or equal to MAIN_FAILED_COUNT" | |
exit 0 | |
fi | |
env: | |
PR_FAILED_COUNT: ${{ env.PR_FAILED_COUNT }} | |
MAIN_FAILED_COUNT: ${{ env.MAIN_FAILED_COUNT }} | |
continue-on-error: true | |
# Can fail the job | |
- name: Show the regressions between PR and main | |
if: steps.comparison.outcome == 'failure' | |
run: diff $HOME/main_test_result.txt $HOME/pr_test_result.txt || true | |
# Cannot fail the job | |
- name: Show the improvements between PR and main | |
if: steps.comparison.outcome == 'success' | |
run: diff $HOME/main_test_result.txt $HOME/pr_test_result.txt || true |