[FEAT] Seperate test workflow and add bonus part test #1
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: Memory Leak Test | |
on: | |
pull_request: | |
jobs: | |
prepare_test_matrix: | |
name: Prepare Test Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
test_matrix: ${{ steps.prep_matrix.outputs.TEST_MATRIX }} | |
steps: | |
- name: Clone tester repository | |
run: git clone https://github.com/LeaYeh/42_minishell_tester.git | |
- name: Prepare matrix | |
id: prep_matrix | |
run: | | |
FILES=$(find 42_minishell_tester/cmds/**/*.sh \ | |
-exec basename {} \; | jq -R -s -c 'split("\n")[:-1]') | |
echo "TEST_MATRIX=${FILES}" >> "$GITHUB_OUTPUT" | |
memory_leak_test: | |
name: Memory Leak Test | |
needs: prepare_test_matrix | |
strategy: | |
matrix: | |
test_script: ${{ fromJson(needs.prepare_test_matrix.outputs.test_matrix) }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout source branch of pull request | |
uses: actions/checkout@v4 | |
- name: Set up build environment | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential clang-12 valgrind | |
- 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: Delete all but one test script | |
run: | | |
for file in $HOME/42_minishell_tester/cmds/**/*.sh; do | |
if [[ "$(basename "$file")" != "${{ matrix.test_script }}" ]]; then | |
rm "$file" | |
fi | |
done | |
combine_memory_leak_test_results: | |
name: Combine Memory Leak Test Results | |
needs: [memory_leak_test] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Combine memory leak test results | |
run: echo "All memory leak tests finished" |