From 5c0c8f6e4da633d7dd1c59801e9e5e55793fbb31 Mon Sep 17 00:00:00 2001 From: commit111 Date: Mon, 16 Dec 2024 17:53:38 -0800 Subject: [PATCH 1/4] add try-catch for check-sample workflow --- .github/workflows/check-sample.yml | 80 ++++++++++++++++++------------ 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/.github/workflows/check-sample.yml b/.github/workflows/check-sample.yml index cd90562f..a42d22b8 100644 --- a/.github/workflows/check-sample.yml +++ b/.github/workflows/check-sample.yml @@ -45,48 +45,64 @@ jobs: const fs = require('fs'); const pr_number = context.issue.number; const marker = '## Samples Checklist'; - - // Read the checklist from the file - let checklist = fs.readFileSync('checklist.txt', 'utf8').trim(); + + let checklist; let error = false; - if(!checklist) { - checklist = "✅ All good!" - } - else { - error = true; + try { + // Check if the checklist file exists + if (!fs.existsSync('checklist.txt')) { + throw new Error("Samples checklist file does not exist. Please fix the issues and try again."); + } + + // Read the checklist from the file + checklist = fs.readFileSync('checklist.txt', 'utf8'); + checklist = checklist.trim(); + if(!checklist) { + checklist = "✅ All good!" + } + else { + error = true; + } + } catch (readFileError) { + throw new Error(Could not read samples checklist from file. Please fix the issues and try again.") } - // Get the current PR - const { data: pullRequest } = await github.rest.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: pr_number - }); + try { + // Get the current PR + const { data: pullRequest } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pr_number + }); - let newBody; - const body = pullRequest.body || ""; - const markerIndex = body.indexOf(marker); + let newBody; + const body = pullRequest.body || ""; + const markerIndex = body.indexOf(marker); - if (markerIndex !== -1) { - // Replace the content below the marker - newBody = body.substring(0, markerIndex + marker.length) + "\n" + checklist; - } else { - // Append the checklist if the marker doesn't exist - newBody = body + "\n" + marker + "\n" + checklist; - } + if (markerIndex !== -1) { + // Replace the content below the marker + newBody = body.substring(0, markerIndex + marker.length) + "\n" + checklist; + } else { + // Append the checklist if the marker doesn't exist + newBody = body + "\n" + marker + "\n" + checklist; + } - // Update the PR description - await github.rest.pulls.update({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: pr_number, - body: newBody - }); + // Update the PR description + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pr_number, + body: newBody + }); + } catch (updatePrError) { + throw new Error("Could not update PR description based on samples checklist. Please fix the issues and try again.") + } - if(error) { + if (error) { throw new Error("Incomplete samples checklist. Please fix the issues and try again."); } + - name: Create / Update Template Repo uses: actions/github-script@v7 From 209e2f6cf551f253049685f17742cc60288f9007 Mon Sep 17 00:00:00 2001 From: commit111 Date: Tue, 17 Dec 2024 10:57:57 -0800 Subject: [PATCH 2/4] revise fix --- .github/workflows/check-sample.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/check-sample.yml b/.github/workflows/check-sample.yml index a42d22b8..736c492f 100644 --- a/.github/workflows/check-sample.yml +++ b/.github/workflows/check-sample.yml @@ -50,11 +50,6 @@ jobs: let error = false; try { - // Check if the checklist file exists - if (!fs.existsSync('checklist.txt')) { - throw new Error("Samples checklist file does not exist. Please fix the issues and try again."); - } - // Read the checklist from the file checklist = fs.readFileSync('checklist.txt', 'utf8'); checklist = checklist.trim(); @@ -65,7 +60,7 @@ jobs: error = true; } } catch (readFileError) { - throw new Error(Could not read samples checklist from file. Please fix the issues and try again.") + throw new Error("Could not read samples checklist from file. Please fix the issues and try again.") } try { From d777b09fe2031fadd8d96e626417f6b341fa9d1b Mon Sep 17 00:00:00 2001 From: commit111 Date: Tue, 17 Dec 2024 11:28:28 -0800 Subject: [PATCH 3/4] add more debugging info to shell script --- scripts/check-sample-files.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/check-sample-files.sh b/scripts/check-sample-files.sh index a47533d6..ca5394a5 100755 --- a/scripts/check-sample-files.sh +++ b/scripts/check-sample-files.sh @@ -18,8 +18,9 @@ for dir in ./samples/*/; do # if there is a compose.yaml file, check if it is valid ( cd $dir - if ! defang compose config > /dev/null 2>/dev/null; then - echo " - [ ] ${dir}compose.yaml contains errors" + output=$(defang compose config 2>&1) + if [[ $? -ne 0 ]]; then + echo " - [ ] ${dir}compose.yaml is not valid according to \`defang compose config\`: $output" fi ) fi From 8a40c7eec604134e21e3bea3645928df092eb6ad Mon Sep 17 00:00:00 2001 From: commit111 Date: Tue, 17 Dec 2024 16:13:07 -0800 Subject: [PATCH 4/4] change workflow name to not be duplicate --- .github/workflows/publish-sample-template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-sample-template.yml b/.github/workflows/publish-sample-template.yml index 742ec8b8..c572ef2d 100644 --- a/.github/workflows/publish-sample-template.yml +++ b/.github/workflows/publish-sample-template.yml @@ -6,7 +6,7 @@ on: - main jobs: - check_samples: + publish_samples: runs-on: ubuntu-latest permissions: contents: write