1515jobs :
1616
1717  #  ----------------------
18-   #  1. Setup Job (Uses  venv)
18+   #  1. Setup Job (Creates  venv and Uploads )
1919  #  ----------------------
2020  setup :
2121    runs-on : ubuntu-latest 
2222    steps :
2323      - name : Checkout Code 
24-         uses : actions/checkout@v3  
24+         uses : actions/checkout@v4  
2525
2626      - name : Setup Python Virtual Environment 
2727        run : | 
@@ -31,28 +31,40 @@ jobs:
3131          pip install flake8 pytest-flake8 pytest-cov coverage 
3232          python -c "import gedidb; print(gedidb.__version__)" 
3333
34+ name : Verify Virtual Environment 
35+         run : | 
36+           if [ ! -d ".venv" ]; then 
37+             echo "Error: .venv directory does not exist!" && exit 1 
38+           fi 
39+ 
3440name : Upload Virtual Environment 
3541        uses : actions/upload-artifact@v4 
3642        with :
3743          name : python-env 
38-           path : .venv 
44+           path : .venv/**  
3945
4046  #  ----------------------
41-   #  2. Unit Test Job (Uses  venv)
47+   #  2. Unit Test Job (Downloads  venv and Runs Tests )
4248  #  ----------------------
4349  test :
4450    runs-on : ubuntu-latest 
4551    needs : setup   #  Run only after setup completes
4652    steps :
4753      - name : Checkout Code 
48-         uses : actions/checkout@v3  
54+         uses : actions/checkout@v4  
4955
5056      - name : Download Virtual Environment 
5157        uses : actions/download-artifact@v4 
5258        with :
5359          name : python-env 
5460          path : .venv 
5561
62+       - name : Verify Downloaded Virtual Environment 
63+         run : | 
64+           if [ ! -d ".venv" ]; then 
65+             echo "Error: .venv directory missing after download!" && exit 1 
66+           fi 
67+ 
5668name : Install Coverage Dependencies 
5769        run : | 
5870          . .venv/bin/activate 
@@ -77,21 +89,27 @@ jobs:
7789          fail_ci_if_error : true 
7890
7991  #  ----------------------
80-   #  3. Linting Job (Uses  venv)
92+   #  3. Linting Job (Downloads  venv and Runs Linting )
8193  #  ----------------------
8294  lint :
8395    runs-on : ubuntu-latest 
8496    needs : setup 
8597    steps :
8698      - name : Checkout Code 
87-         uses : actions/checkout@v3  
99+         uses : actions/checkout@v4  
88100
89101      - name : Download Virtual Environment 
90102        uses : actions/download-artifact@v4 
91103        with :
92104          name : python-env 
93105          path : .venv 
94106
107+       - name : Verify Downloaded Virtual Environment 
108+         run : | 
109+           if [ ! -d ".venv" ]; then 
110+             echo "Error: .venv directory missing after download!" && exit 1 
111+           fi 
112+ 
95113name : Run Flake8 Linting 
96114        run : | 
97115          . .venv/bin/activate 
0 commit comments