Skip to content

Commit

Permalink
Merge pull request #4 from PhilippNauck/main
Browse files Browse the repository at this point in the history
Update Action for Zip folders
  • Loading branch information
sergeiandreyev authored Sep 13, 2024
2 parents 8e2156b + 57b4e58 commit fca6512
Showing 1 changed file with 85 additions and 18 deletions.
103 changes: 85 additions & 18 deletions .github/workflows/drc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
name: DRC

on:
#push
pull_request:
types: [opened, reopened]

Expand All @@ -30,6 +31,9 @@ jobs:
- name: Check all files
id: changed-files
uses: tj-actions/changed-files@v44
- name: Installing p7zip
run: |
sudo apt-get install p7zip-full
- name: Installing Klayout
run: |
sudo apt update -qq -y
Expand All @@ -45,33 +49,96 @@ jobs:
klayout -v;
mkdir ${{ github.workspace }}/drc/Results
result=true;
Zips=0
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
FileRe="FMD_QNC.*\.gds"
FileRe="\.gds"
if [[ $file =~ $FileRe ]]; then
echo "Run DRC for $file";
path=${{ github.workspace }}/${file};
resultpath=${{ github.workspace }}/drc/Results/${file//[\/.]/_}.lyrdb;
OUTPUT=$(klayout -b -r ${{ github.workspace }}/drc/drc.lydrc -rd "in_gds"="${path}" -rd "report_file"="${resultpath}")
re="Number of DRC errors: [0-9]+"
if [[ $OUTPUT =~ $re ]]; then
echo ${BASH_REMATCH};
NumberRe="[0-9]+"
if [[ $BASH_REMATCH =~ $NumberRe ]]; then
if (($BASH_REMATCH == 0))
then
echo "DRC pass";
ZipRe="\.zip"
GDSRe="\.gds$"
if [[ $file =~ $ZipRe ]]; then
ZIP_FILE="${{ github.workspace }}/${file}"
# Zielverzeichnis für das Entpacken
EXTRACT_DIR="${ZIP_FILE%/*}/Folder$Zips"
# Überprüfen, ob die ZIP-Datei existiert
if [[ ! -f "$ZIP_FILE" ]]; then
echo "ZIP-Datei nicht gefunden: $ZIP_FILE"
exit 1
fi
7z x "$ZIP_FILE" -o"$EXTRACT_DIR"
# Dateiformat, nach dem gesucht wird (z.B. '.txt' für Textdateien)
file_extension=gds
file_array=($(find "$EXTRACT_DIR" -type f -iname "*$file_extension"))
# Ausgabe der Dateien im Array
echo "Gefundene Dateien:"
for ZipContentFile in "${file_array[@]}"; do
echo "$ZipContentFile"
echo "Run DRC for $ZipContentFile";
path=$ZipContentFile;
resultpath=${{ github.workspace }}/drc/Results/${ZipContentFile//[\/.]/_}.lyrdb;
# OUTPUT=$(klayout -b -r ${{ github.workspace }}/drc/drc.lydrc -rd "in_gds"="${path}" -rd "report_file"="${resultpath}")
command_output=$(mktemp)
klayout -b -r ${{ github.workspace }}/drc/drc.lydrc -rd "in_gds"="${path}" -rd "report_file"="${resultpath}" | tee "$command_output"
OUTPUT=$(cat "$command_output")
re="Number of DRC errors: [0-9]+"
if [[ $OUTPUT =~ $re ]]; then
NumberRe="[0-9]+"
if [[ $BASH_REMATCH =~ $NumberRe ]]; then
if (($BASH_REMATCH == 0))
then
echo "DRC pass";
else
echo "DRC fail";
result=false;
fi
else
echo "DRC fail";
result=false;
fi
else
echo "DRC fail";
result=false;
fi
else
done
Zips=$((Zips + 1))
elif [[ $file =~ $GDSRe ]]; then
echo "Run DRC for $file";
path=${{ github.workspace }}/${file};
resultpath=${{ github.workspace }}/drc/Results/${file//[\/.]/_}.lyrdb;
command_output=$(mktemp)
klayout -b -r ${{ github.workspace }}/drc/drc.lydrc -rd "in_gds"="${path}" -rd "report_file"="${resultpath}" | tee "$command_output"
OUTPUT=$(cat "$command_output")
re="Number of DRC errors: [0-9]+"
if [[ $OUTPUT =~ $re ]]; then
NumberRe="[0-9]+"
if [[ $BASH_REMATCH =~ $NumberRe ]]; then
if (($BASH_REMATCH == 0))
then
echo "DRC pass";
else
echo "DRC fail";
result=false;
fi
else
echo "DRC fail";
result=false;
fi
else
echo "DRC fail";
result=false;
fi
else
echo "DRC fail";
result=false;
fi
fi
done
Expand Down

0 comments on commit fca6512

Please sign in to comment.