File tree Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Original file line number Diff line number Diff line change
1
+ name : Deprecated
2
+
3
+ on :
4
+ pull_request :
5
+
6
+ jobs :
7
+ test-deprecated :
8
+ name : Check for deprecated exercises
9
+ runs-on : ubuntu-24.04
10
+ steps :
11
+ - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
12
+ with :
13
+ fetch-depth : 0
14
+ - name : Test deprecated exercises using test-deprecated-exercises
15
+ run : bin/test-deprecated-exercises
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ set -eo pipefail
3
+
4
+ # Determine the base branch of the PR
5
+ BASE_BRANCH=${GITHUB_BASE_REF:- main}
6
+
7
+ # Fetch full history for proper diff
8
+ git fetch origin " $BASE_BRANCH "
9
+
10
+ # Compute merge base
11
+ MERGE_BASE=$( git merge-base HEAD origin/" $BASE_BRANCH " )
12
+
13
+ # Get changed files relative to merge base
14
+ changed_files=$( git diff --name-only " $MERGE_BASE " HEAD)
15
+
16
+ # Extract unique exercise directories
17
+ changed_exercises=$( echo " $changed_files " | grep -E ' ^exercises/(practice|concept)/' || true)
18
+ changed_exercises=$( echo " $changed_exercises " | cut -d/ -f1-3 | sort -u)
19
+
20
+ # Early exit if no exercise changed
21
+ if [ -z " $changed_exercises " ]; then
22
+ echo " No exercises changed!"
23
+ exit 0
24
+ fi
25
+
26
+ # Load deprecated exercises from config.json
27
+ deprecated_exercises=$( jq -r '
28
+ [
29
+ (.exercises.concept[]? | select(.status=="deprecated") | "exercises/concept/" + .slug),
30
+ (.exercises.practice[]? | select(.status=="deprecated") | "exercises/practice/" + .slug)
31
+ ] | .[]
32
+ ' config.json)
33
+
34
+ # Check for deprecated ones
35
+ for ex in $changed_exercises ; do
36
+ if echo " $deprecated_exercises " | grep -qx " $ex " ; then
37
+ echo " ❌ Deprecated exercise changed: $ex "
38
+ exit 1
39
+ fi
40
+ done
41
+
42
+ echo " ✅ No deprecated exercises changed!"
You can’t perform that action at this time.
0 commit comments