Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Action for Zip folders #4

Merged
merged 24 commits into from
Sep 13, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading