From 92bb97b14c70bbd1720fed10363c616e684985b9 Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Mon, 31 Jul 2023 09:33:55 -0500 Subject: [PATCH 01/51] empty (#119) --- .github/workflows/create-new-hack-openai.yml | 0 .github/workflows/create-wth-release.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/create-new-hack-openai.yml create mode 100644 .github/workflows/create-wth-release.yml diff --git a/.github/workflows/create-new-hack-openai.yml b/.github/workflows/create-new-hack-openai.yml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml new file mode 100644 index 0000000000..e69de29bb2 From 23fdc5ca3501408c3c81ef598c5dc9df49ec483e Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Mon, 31 Jul 2023 09:36:57 -0500 Subject: [PATCH 02/51] Test actions (#121) * empty * empty --- .github/workflows/create-new-hack-openai.yml | 50 ++++++++++++++++++++ .github/workflows/create-wth-release.yml | 40 ++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/.github/workflows/create-new-hack-openai.yml b/.github/workflows/create-new-hack-openai.yml index e69de29bb2..2ef1f4de10 100644 --- a/.github/workflows/create-new-hack-openai.yml +++ b/.github/workflows/create-new-hack-openai.yml @@ -0,0 +1,50 @@ +name: Create new hack with OpenAI + +on: + workflow_dispatch: + inputs: + hackName: + description: The name of the hack you want to create + required: true + default: YetAnotherHack + description: + description: A description of the hack + required: true + default: "Create a WhatTheHack for creating a WhatTheHack." + keywords: + description: A comma separated list of keywords (these will be used to guide the AI to generate challenges) + required: true + default: "WhatTheHack, GitHub, Actions, AI" + numberOfChallenges: + description: The number of challenges you want (note that it is better to auto-generate more challenges than you think you will need, you can always delete the files later) + required: true + default: "3" +jobs: + createNewWhatTheHackTemplate: + runs-on: ubuntu-latest + permissions: + contents: write + env: + BRANCH_NAME: xxx-${{ github.event.inputs.hackName }} + steps: + - uses: actions/checkout@v3 + - name: Create new branch + run: | + git config user.name "GitHub Actions Bot" + git config user.email "<>" + git checkout -b ${{ env.BRANCH_NAME }} + - name: setup python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + - name: install python packages + run: | + python -m pip install --upgrade pip + pip install -r ${{ github.workspace }}/.github/workflows/create-wth-template-openai/requirements.txt + - name: Generate WhatTheHack template stubs + run: python ${{ github.workspace }}/.github/workflows/create-wth-template-openai/create-wth-template-openai.py -p ${{ github.workspace }} -c "${{ github.event.inputs.numberOfChallenges}}" -n "${{ github.event.inputs.hackName }}" -d "${{ github.event.inputs.description }}" -k "${{ github.event.inputs.keywords }}" -e "${{ secrets.OPENAI_ENDPOINT_URI }}" -a "${{ secrets.OPENAI_API_KEY }}" -r -v + - name: Push branch + run: | + git add * + git commit -m 'Created WhatTheHack template stub' + git push -u origin ${{ env.BRANCH_NAME }} diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index e69de29bb2..72585195e6 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -0,0 +1,40 @@ +name: Create a release for a WhatTheHack hackathon + +on: + workflow_dispatch: + inputs: + hackathonName: + description: "The name of the hackathon to create a release for" + required: true + default: "001-IntroToKubernetes" + pathToStudentResources: + description: "The path to the Student Resources directory." + required: true + default: "Student/Resources" + branchName: + description: "The name of the branch to create the release from." + required: true + default: "master" + +jobs: + package: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - run: echo "TAG=${{ inputs.hackathonName }}-$(date +'%Y.%m.%d')" >> $GITHUB_ENV + - run: | + cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} + zip -r ${{ env.RESOURCES_FILENAME }} * + + gh release create ${{ env.TAG }} \ + --title "Student Resources for ${{ inputs.hackathonName }}" \ + --notes "Student Resources for ${{ inputs.hackathonName }}" \ + --target ${{ inputs.branchName }} + + gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RESOURCES_FILENAME: Resources From c034d40aebece6a06336b2b6495851f3e1203e14 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 13:56:58 -0600 Subject: [PATCH 03/51] releaser --- .github/workflows/create-wth-release.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index aa076f9314..77af597dc7 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -15,6 +15,14 @@ on: description: "The name of the branch to create the release from." required: true default: "master" + push: + branches: + - master + +env: + HACKATHON_NAME: ${{ github.event.inputs.hackathonName != '001-IntroToKubernetes' && github.event.inputs.hackathonName || '001-IntroToKubernetes'}} + PATH_TO_STUDENT_RESOURCES: ${{ github.event.inputs.pathToStudentResources != 'Student/Resources' && github.event.inputs.pathToStudentResources || 'Student/Resources'}} + BRANCH_NAME: ${{ github.event.inputs.branchName != 'master' && github.event.inputs.branchName || 'master'}} jobs: package: @@ -24,15 +32,15 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - run: echo "TAG=${{ inputs.hackathonName }}-$(date +'%Y.%m.%d')" >> $GITHUB_ENV + - run: echo "TAG=${{ env.HACKATHON_NAME }}" >> $GITHUB_ENV - run: | - cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} + cd ${{ env.HACKATHON_NAME }}/${{ env.PATH_TO_STUDENT_RESOURCES }} zip -r ${{ env.RESOURCES_FILENAME }} * gh release create ${{ env.TAG }} \ - --title "Student Resources for ${{ inputs.hackathonName }}" \ - --notes "Student Resources for ${{ inputs.hackathonName }}" \ - --target ${{ inputs.branchName }} + --title "Student Resources for ${{ env.HACKATHON_NAME }}" \ + --notes "Student Resources for ${{ env.HACKATHON_NAME }}" \ + --target ${{ env.BRANCH_NAME }} gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip env: From 4ee714ff00e73bb54cac9732f3b2645c9d426383 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 14:20:37 -0600 Subject: [PATCH 04/51] releasers --- .github/workflows/create-wth-release-push.yml | 31 +++++++++++++++++++ .../create-wth-release-workflow_dispatch.yml | 26 ++++++++++++++++ .github/workflows/create-wth-release.yml | 26 ++++++---------- 3 files changed, 66 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/create-wth-release-push.yml create mode 100644 .github/workflows/create-wth-release-workflow_dispatch.yml diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml new file mode 100644 index 0000000000..34dae0d378 --- /dev/null +++ b/.github/workflows/create-wth-release-push.yml @@ -0,0 +1,31 @@ +name: Create a release for a WhatTheHack hackathon + +on: + push: + branches: + - release + +jobs: + determine-changed-hackathon: + runs-on: ubuntu-latest + permissions: + contents: write + outputs: + all_changed_hackathons: ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Get changed hackathons + id: changed-hackathon-directories + uses: tj-actions/changed-files@25ef3926d147cd02fc7e931c1ef50772bbb0d25d + with: + dir_names: true + exclude_current_dir: true + dir_names_max_depth: 1 + package: + needs: determine-changed-hackathon + uses: ./.github/workflows/create-wth-release.yml + with: + hackathonName: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} + pathToStudentResources: 'Student/Resources' + branchName: release \ No newline at end of file diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml new file mode 100644 index 0000000000..25ca62588e --- /dev/null +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -0,0 +1,26 @@ +name: Create a release for a WhatTheHack hackathon + +on: + workflow_dispatch: + inputs: + hackathonName: + description: "The name of the hackathon to create a release for" + required: true + default: "001-IntroToKubernetes" + pathToStudentResources: + description: "The path to the Student Resources directory." + required: true + default: "Student/Resources" + branchName: + description: "The name of the branch to create the release from." + required: true + default: "master" + +jobs: + package: + uses: ./.github/workflows/create-wth-release.yml + with: + hackathonName: ${{ inputs.hackathonName }} + pathToStudentResources: ${{ inputs.pathToStudentResources }} + branchName: ${{ inputs.branchName }} + diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 77af597dc7..0e8ce77276 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -1,28 +1,20 @@ name: Create a release for a WhatTheHack hackathon on: - workflow_dispatch: + workflow_call: inputs: hackathonName: description: "The name of the hackathon to create a release for" required: true - default: "001-IntroToKubernetes" + type: string pathToStudentResources: description: "The path to the Student Resources directory." required: true - default: "Student/Resources" + type: string branchName: description: "The name of the branch to create the release from." required: true - default: "master" - push: - branches: - - master - -env: - HACKATHON_NAME: ${{ github.event.inputs.hackathonName != '001-IntroToKubernetes' && github.event.inputs.hackathonName || '001-IntroToKubernetes'}} - PATH_TO_STUDENT_RESOURCES: ${{ github.event.inputs.pathToStudentResources != 'Student/Resources' && github.event.inputs.pathToStudentResources || 'Student/Resources'}} - BRANCH_NAME: ${{ github.event.inputs.branchName != 'master' && github.event.inputs.branchName || 'master'}} + type: string jobs: package: @@ -32,15 +24,15 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - run: echo "TAG=${{ env.HACKATHON_NAME }}" >> $GITHUB_ENV + - run: echo "TAG=${{ inputs.hackathonName }}" >> $GITHUB_ENV - run: | - cd ${{ env.HACKATHON_NAME }}/${{ env.PATH_TO_STUDENT_RESOURCES }} + cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * gh release create ${{ env.TAG }} \ - --title "Student Resources for ${{ env.HACKATHON_NAME }}" \ - --notes "Student Resources for ${{ env.HACKATHON_NAME }}" \ - --target ${{ env.BRANCH_NAME }} + --title "Student Resources for ${{ inputs.hackathonName }}" \ + --notes "Student Resources for ${{ inputs.hackathonName }}" \ + --target ${{ inputs.branchName }} gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip env: From 0bc72e878e85cc3f7a6f175478222c49034bafec Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Tue, 21 Nov 2023 14:22:25 -0600 Subject: [PATCH 05/51] Jordanbean msft/releaser (#124) * empty (#119) * Test actions (#121) * empty * empty * releaser * releasers --- .github/workflows/create-new-hack-openai.yml | 50 +++++++++++++++++++ .github/workflows/create-wth-release-push.yml | 31 ++++++++++++ .../create-wth-release-workflow_dispatch.yml | 26 ++++++++++ .github/workflows/create-wth-release.yml | 10 ++-- 4 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/create-new-hack-openai.yml create mode 100644 .github/workflows/create-wth-release-push.yml create mode 100644 .github/workflows/create-wth-release-workflow_dispatch.yml diff --git a/.github/workflows/create-new-hack-openai.yml b/.github/workflows/create-new-hack-openai.yml new file mode 100644 index 0000000000..2ef1f4de10 --- /dev/null +++ b/.github/workflows/create-new-hack-openai.yml @@ -0,0 +1,50 @@ +name: Create new hack with OpenAI + +on: + workflow_dispatch: + inputs: + hackName: + description: The name of the hack you want to create + required: true + default: YetAnotherHack + description: + description: A description of the hack + required: true + default: "Create a WhatTheHack for creating a WhatTheHack." + keywords: + description: A comma separated list of keywords (these will be used to guide the AI to generate challenges) + required: true + default: "WhatTheHack, GitHub, Actions, AI" + numberOfChallenges: + description: The number of challenges you want (note that it is better to auto-generate more challenges than you think you will need, you can always delete the files later) + required: true + default: "3" +jobs: + createNewWhatTheHackTemplate: + runs-on: ubuntu-latest + permissions: + contents: write + env: + BRANCH_NAME: xxx-${{ github.event.inputs.hackName }} + steps: + - uses: actions/checkout@v3 + - name: Create new branch + run: | + git config user.name "GitHub Actions Bot" + git config user.email "<>" + git checkout -b ${{ env.BRANCH_NAME }} + - name: setup python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + - name: install python packages + run: | + python -m pip install --upgrade pip + pip install -r ${{ github.workspace }}/.github/workflows/create-wth-template-openai/requirements.txt + - name: Generate WhatTheHack template stubs + run: python ${{ github.workspace }}/.github/workflows/create-wth-template-openai/create-wth-template-openai.py -p ${{ github.workspace }} -c "${{ github.event.inputs.numberOfChallenges}}" -n "${{ github.event.inputs.hackName }}" -d "${{ github.event.inputs.description }}" -k "${{ github.event.inputs.keywords }}" -e "${{ secrets.OPENAI_ENDPOINT_URI }}" -a "${{ secrets.OPENAI_API_KEY }}" -r -v + - name: Push branch + run: | + git add * + git commit -m 'Created WhatTheHack template stub' + git push -u origin ${{ env.BRANCH_NAME }} diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml new file mode 100644 index 0000000000..34dae0d378 --- /dev/null +++ b/.github/workflows/create-wth-release-push.yml @@ -0,0 +1,31 @@ +name: Create a release for a WhatTheHack hackathon + +on: + push: + branches: + - release + +jobs: + determine-changed-hackathon: + runs-on: ubuntu-latest + permissions: + contents: write + outputs: + all_changed_hackathons: ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Get changed hackathons + id: changed-hackathon-directories + uses: tj-actions/changed-files@25ef3926d147cd02fc7e931c1ef50772bbb0d25d + with: + dir_names: true + exclude_current_dir: true + dir_names_max_depth: 1 + package: + needs: determine-changed-hackathon + uses: ./.github/workflows/create-wth-release.yml + with: + hackathonName: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} + pathToStudentResources: 'Student/Resources' + branchName: release \ No newline at end of file diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml new file mode 100644 index 0000000000..25ca62588e --- /dev/null +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -0,0 +1,26 @@ +name: Create a release for a WhatTheHack hackathon + +on: + workflow_dispatch: + inputs: + hackathonName: + description: "The name of the hackathon to create a release for" + required: true + default: "001-IntroToKubernetes" + pathToStudentResources: + description: "The path to the Student Resources directory." + required: true + default: "Student/Resources" + branchName: + description: "The name of the branch to create the release from." + required: true + default: "master" + +jobs: + package: + uses: ./.github/workflows/create-wth-release.yml + with: + hackathonName: ${{ inputs.hackathonName }} + pathToStudentResources: ${{ inputs.pathToStudentResources }} + branchName: ${{ inputs.branchName }} + diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index aa076f9314..0e8ce77276 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -1,20 +1,20 @@ name: Create a release for a WhatTheHack hackathon on: - workflow_dispatch: + workflow_call: inputs: hackathonName: description: "The name of the hackathon to create a release for" required: true - default: "001-IntroToKubernetes" + type: string pathToStudentResources: description: "The path to the Student Resources directory." required: true - default: "Student/Resources" + type: string branchName: description: "The name of the branch to create the release from." required: true - default: "master" + type: string jobs: package: @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - run: echo "TAG=${{ inputs.hackathonName }}-$(date +'%Y.%m.%d')" >> $GITHUB_ENV + - run: echo "TAG=${{ inputs.hackathonName }}" >> $GITHUB_ENV - run: | cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * From edcb8949b21fc19f61eb598f8a3e621145cecb0c Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 14:23:46 -0600 Subject: [PATCH 06/51] readme --- 047-TrafficControlWithDapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 95473bf607..e476cf4b79 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets management +- Secrets managementasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 1b74064fa793c326601c6e4bebc864164349f83a Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 14:44:51 -0600 Subject: [PATCH 07/51] push --- .github/workflows/create-wth-release-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 34dae0d378..30a43ba25b 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -20,7 +20,7 @@ jobs: uses: tj-actions/changed-files@25ef3926d147cd02fc7e931c1ef50772bbb0d25d with: dir_names: true - exclude_current_dir: true + dir_names_exclude_current_dir: true dir_names_max_depth: 1 package: needs: determine-changed-hackathon From 9c8073104b0732dafb4485aed303abedbfd634d1 Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Tue, 21 Nov 2023 14:45:49 -0600 Subject: [PATCH 08/51] Jordanbean msft/releaser (#125) * empty (#119) * Test actions (#121) * empty * empty * releaser * releasers * push --- .github/workflows/create-wth-release-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 34dae0d378..30a43ba25b 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -20,7 +20,7 @@ jobs: uses: tj-actions/changed-files@25ef3926d147cd02fc7e931c1ef50772bbb0d25d with: dir_names: true - exclude_current_dir: true + dir_names_exclude_current_dir: true dir_names_max_depth: 1 package: needs: determine-changed-hackathon From b82c1c2e161bb8d91e56073dcb8a51f5a6fd3995 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 14:46:17 -0600 Subject: [PATCH 09/51] asdf --- .vscode/settings.json | 8 ++++++++ 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..ef721ec972 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "terminal.integrated.env.windows": { + "PATH": "C:\\Users\\jordanbean\\.azurelogicapps\\dependencies\\DotNetSDK;${env:PATH}" + }, + "omnisharp.dotNetCliPaths": [ + "C:\\Users\\jordanbean\\.azurelogicapps\\dependencies\\DotNetSDK" + ] +} \ No newline at end of file diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index e476cf4b79..4517137607 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdf +- Secrets managementasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 83cc9620fe6a08d6cdd9907ac71176a41f7173f3 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 14:48:15 -0600 Subject: [PATCH 10/51] asdf --- 047-TrafficControlWithDapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 4517137607..1afd164371 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdf +- Secrets managementasdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From b30a75acee5495f3b239d2e888d1ea8d71c9750c Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:11:27 -0600 Subject: [PATCH 11/51] ignore --- .github/workflows/create-wth-release-push.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 30a43ba25b..8e7448c9e0 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -22,6 +22,11 @@ jobs: dir_names: true dir_names_exclude_current_dir: true dir_names_max_depth: 1 + files_ignore: | + .github/** + 000-HowToHack/** + _layouts/** + _assets/** package: needs: determine-changed-hackathon uses: ./.github/workflows/create-wth-release.yml From 6c9297c4c2c093f1872b4a389ed714ac99372945 Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Tue, 21 Nov 2023 15:11:48 -0600 Subject: [PATCH 12/51] Jordanbean msft/releaser (#126) * empty (#119) * Test actions (#121) * empty * empty * releaser * releasers * push * ignore --- .github/workflows/create-wth-release-push.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 30a43ba25b..8e7448c9e0 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -22,6 +22,11 @@ jobs: dir_names: true dir_names_exclude_current_dir: true dir_names_max_depth: 1 + files_ignore: | + .github/** + 000-HowToHack/** + _layouts/** + _assets/** package: needs: determine-changed-hackathon uses: ./.github/workflows/create-wth-release.yml From 6522fb0f8cbd65c2834395f1697ba123a578c9e8 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:12:23 -0600 Subject: [PATCH 13/51] readme --- 047-TrafficControlWithDapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 1afd164371..4b5eaf27d9 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdf +- Secrets managementasdfasdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From fad9b2ed5c948ef78c6034e7329cb276d52fc77f Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:27:54 -0600 Subject: [PATCH 14/51] deltee --- .github/workflows/create-wth-release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 0e8ce77276..7c6c544a1f 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -29,6 +29,13 @@ jobs: cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * + output=$(gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>&1) || [[ "${output}" == "release not found" ]] + + if [[ "${output}" != "release not found" ]]; then + echo "Release ${{ env.TAG }} already exists. Deleting it." + gh release delete "${{ env.TAG }}" --cleanup-tag --yes + fi + gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ inputs.hackathonName }}" \ --notes "Student Resources for ${{ inputs.hackathonName }}" \ From c7c15ea1cacf3894b922d383ad801de1ef7df663 Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Tue, 21 Nov 2023 15:28:14 -0600 Subject: [PATCH 15/51] Jordanbean msft/releaser (#127) * empty (#119) * Test actions (#121) * empty * empty * releaser * releasers * push * ignore * deltee --- .github/workflows/create-wth-release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 0e8ce77276..7c6c544a1f 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -29,6 +29,13 @@ jobs: cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * + output=$(gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>&1) || [[ "${output}" == "release not found" ]] + + if [[ "${output}" != "release not found" ]]; then + echo "Release ${{ env.TAG }} already exists. Deleting it." + gh release delete "${{ env.TAG }}" --cleanup-tag --yes + fi + gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ inputs.hackathonName }}" \ --notes "Student Resources for ${{ inputs.hackathonName }}" \ From 32011b1e803011bbca54b56c7d96d08663944d6b Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:28:50 -0600 Subject: [PATCH 16/51] release --- 047-TrafficControlWithDapr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 4b5eaf27d9..d1ba506a2e 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdf +- Secrets managementasdfasdfasdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 06903e0601d83c9e654174f8cc7d34777acfebd2 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:42:30 -0600 Subject: [PATCH 17/51] true --- .github/workflows/create-wth-release.yml | 7 +------ 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 7c6c544a1f..446f13f4cd 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -29,12 +29,7 @@ jobs: cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * - output=$(gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>&1) || [[ "${output}" == "release not found" ]] - - if [[ "${output}" != "release not found" ]]; then - echo "Release ${{ env.TAG }} already exists. Deleting it." - gh release delete "${{ env.TAG }}" --cleanup-tag --yes - fi + gh release delete "${{ env.TAG }}" --cleanup-tag --yes || true gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ inputs.hackathonName }}" \ diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index d1ba506a2e..8d539e6704 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdfasdf +- Secrets managementasdfasdfasdfasdfasdfsdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 2888d364a728f184929038cf97046475272f49fd Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:50:48 -0600 Subject: [PATCH 18/51] readme --- .github/workflows/create-wth-release-push.yml | 2 +- .github/workflows/create-wth-release-workflow_dispatch.yml | 2 +- .github/workflows/create-wth-release.yml | 5 ++++- 047-TrafficControlWithDapr/README.md | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 8e7448c9e0..ae23b9748d 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -31,6 +31,6 @@ jobs: needs: determine-changed-hackathon uses: ./.github/workflows/create-wth-release.yml with: - hackathonName: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} + hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: 'Student/Resources' branchName: release \ No newline at end of file diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml index 25ca62588e..525f6688a1 100644 --- a/.github/workflows/create-wth-release-workflow_dispatch.yml +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -20,7 +20,7 @@ jobs: package: uses: ./.github/workflows/create-wth-release.yml with: - hackathonName: ${{ inputs.hackathonName }} + hackathonNames: ${{ inputs.hackathonName }} pathToStudentResources: ${{ inputs.pathToStudentResources }} branchName: ${{ inputs.branchName }} diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 446f13f4cd..cd3d391542 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -3,7 +3,7 @@ name: Create a release for a WhatTheHack hackathon on: workflow_call: inputs: - hackathonName: + hackathonNames: description: "The name of the hackathon to create a release for" required: true type: string @@ -18,6 +18,9 @@ on: jobs: package: + strategy: + matrix: + hackathonName: ${{ inputs.hackathonNames }} runs-on: ubuntu-latest permissions: contents: write diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 8d539e6704..dc36693113 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdfasdfsdf +- Secrets managementasdfasdfasdfasdfasdfsdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 528a4531d36f83bf4c211d26c4a5b57c6f983460 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 15:57:29 -0600 Subject: [PATCH 19/51] release --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 2302ca57cb..77db10b15a 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. - +asdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index dc36693113..711512687a 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdfasdfsdfasdf +- Secrets managementasdfasdfasdfasdfasdfsdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From 09cd2ab9ff2274a750e20688caa2ae3f26bef029 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:08:19 -0600 Subject: [PATCH 20/51] array --- .github/workflows/create-wth-release-push.yml | 7 ++++++- .github/workflows/create-wth-release.yml | 2 +- .github/workflows/spell-check-markdown.yml | 7 ++++++- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index ae23b9748d..d618975f3c 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -11,7 +11,7 @@ jobs: permissions: contents: write outputs: - all_changed_hackathons: ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} + all_changed_hackathons: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} steps: - name: Checkout repository uses: actions/checkout@v4 @@ -27,6 +27,11 @@ jobs: 000-HowToHack/** _layouts/** _assets/** + - name: Convert space-separated string to JSON array + id: convert-to-json-array + run: | + JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | jq -R -s -c 'split(" ")') + echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon uses: ./.github/workflows/create-wth-release.yml diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index cd3d391542..497e71ae6f 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -20,7 +20,7 @@ jobs: package: strategy: matrix: - hackathonName: ${{ inputs.hackathonNames }} + hackathonName: ${{ fromJSON(inputs.hackathonNames) }} runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/spell-check-markdown.yml b/.github/workflows/spell-check-markdown.yml index dad38b1b01..e112389bad 100644 --- a/.github/workflows/spell-check-markdown.yml +++ b/.github/workflows/spell-check-markdown.yml @@ -20,9 +20,14 @@ jobs: with: files: | **/*.md + - name: Convert space-separated string to JSON array + id: convert-to-json-array + run: | + JSON_ARRAY=$(echo ${{ steps.changed-files.outputs.all_changed_files }} | jq -R -s -c 'split(" ")') + echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" - uses: ./.github/actions/spell-check name: WTH Spell Check with: spell_check_yaml_path: .github/workflows/spell-check/spellcheck.yml markdown_base_path: . - changed_files: ${{ steps.changed-files.outputs.all_changed_files }} + changed_files: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 77db10b15a..8281696dbc 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdf +asdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 711512687a..988691b684 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,7 +8,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdfasdfsdfasdfasdf +- Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. From a4548b105739c5b98bdaedb618b908358ad5c000 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:10:58 -0600 Subject: [PATCH 21/51] matrix --- .github/workflows/create-wth-release.yml | 8 ++++---- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 497e71ae6f..c64d3abb81 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -27,16 +27,16 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - run: echo "TAG=${{ inputs.hackathonName }}" >> $GITHUB_ENV + - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV - run: | - cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} + cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * gh release delete "${{ env.TAG }}" --cleanup-tag --yes || true gh release create ${{ env.TAG }} \ - --title "Student Resources for ${{ inputs.hackathonName }}" \ - --notes "Student Resources for ${{ inputs.hackathonName }}" \ + --title "Student Resources for ${{ matrix.hackathonName }}" \ + --notes "Student Resources for ${{ matrix.hackathonName }}" \ --target ${{ inputs.branchName }} gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 8281696dbc..cd1c4c5053 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdf +asdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 988691b684..bf0a94eef1 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From b1b8989105bcb2121adb7025729f8c54c3e09919 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:18:59 -0600 Subject: [PATCH 22/51] trim --- .github/workflows/create-wth-release-push.yml | 2 +- .github/workflows/create-wth-release.yml | 2 +- .github/workflows/spell-check-markdown.yml | 2 +- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index d618975f3c..bd6497e43a 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -30,7 +30,7 @@ jobs: - name: Convert space-separated string to JSON array id: convert-to-json-array run: | - JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | jq -R -s -c 'split(" ")') + JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr '\n' | jq -R -s -c 'split(" ")') echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index c64d3abb81..6a59163cc3 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -32,7 +32,7 @@ jobs: cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * - gh release delete "${{ env.TAG }}" --cleanup-tag --yes || true + gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>/dev/null gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ matrix.hackathonName }}" \ diff --git a/.github/workflows/spell-check-markdown.yml b/.github/workflows/spell-check-markdown.yml index e112389bad..c569e28b2d 100644 --- a/.github/workflows/spell-check-markdown.yml +++ b/.github/workflows/spell-check-markdown.yml @@ -23,7 +23,7 @@ jobs: - name: Convert space-separated string to JSON array id: convert-to-json-array run: | - JSON_ARRAY=$(echo ${{ steps.changed-files.outputs.all_changed_files }} | jq -R -s -c 'split(" ")') + JSON_ARRAY=$(echo ${{ steps.changed-files.outputs.all_changed_files }} | tr '\n' | jq -R -s -c 'split(" ")') echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" - uses: ./.github/actions/spell-check name: WTH Spell Check diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index cd1c4c5053..16e33f597d 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdf +asdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index bf0a94eef1..9c013cd99a 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From c1f5432b622fc309c00c772d14ef09e7cb83c1b3 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:28:58 -0600 Subject: [PATCH 23/51] trim --- .github/workflows/create-wth-release-push.yml | 2 +- .../create-wth-release-workflow_dispatch.yml | 17 ++++++++++++++++- .github/workflows/spell-check-markdown.yml | 7 +------ 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index bd6497e43a..52d34d545e 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -30,7 +30,7 @@ jobs: - name: Convert space-separated string to JSON array id: convert-to-json-array run: | - JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr '\n' | jq -R -s -c 'split(" ")') + JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr -d '\n' | jq -R -s -c 'split(" ")') echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml index 525f6688a1..dba25e60d3 100644 --- a/.github/workflows/create-wth-release-workflow_dispatch.yml +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -17,10 +17,25 @@ on: default: "master" jobs: + determine-changed-hackathon: + runs-on: ubuntu-latest + permissions: + contents: write + outputs: + all_changed_hackathons: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Convert space-separated string to JSON array + id: convert-to-json-array + run: | + JSON_ARRAY=$(echo ${{ inputs.hackathonName }} | tr -d '\n' | jq -R -s -c 'split(" ")') + echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: + needs: determine-changed-hackathon uses: ./.github/workflows/create-wth-release.yml with: - hackathonNames: ${{ inputs.hackathonName }} + hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: ${{ inputs.pathToStudentResources }} branchName: ${{ inputs.branchName }} diff --git a/.github/workflows/spell-check-markdown.yml b/.github/workflows/spell-check-markdown.yml index c569e28b2d..dad38b1b01 100644 --- a/.github/workflows/spell-check-markdown.yml +++ b/.github/workflows/spell-check-markdown.yml @@ -20,14 +20,9 @@ jobs: with: files: | **/*.md - - name: Convert space-separated string to JSON array - id: convert-to-json-array - run: | - JSON_ARRAY=$(echo ${{ steps.changed-files.outputs.all_changed_files }} | tr '\n' | jq -R -s -c 'split(" ")') - echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" - uses: ./.github/actions/spell-check name: WTH Spell Check with: spell_check_yaml_path: .github/workflows/spell-check/spellcheck.yml markdown_base_path: . - changed_files: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} + changed_files: ${{ steps.changed-files.outputs.all_changed_files }} diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 16e33f597d..21b42fb95d 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdf +asdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 9c013cd99a..b964d6525e 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 19894fd11d2bd6b17a9c0fc23985696f4a230fe3 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:41:00 -0600 Subject: [PATCH 24/51] tag --- .github/workflows/create-wth-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 6a59163cc3..bae23c269e 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -32,7 +32,7 @@ jobs: cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * - gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>/dev/null + gh release delete ${{ env.TAG }} --yes 2>/dev/null gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ matrix.hackathonName }}" \ From 3ceffddb6552ad54388febe5d3bfd5859e597637 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 16:52:21 -0600 Subject: [PATCH 25/51] continue --- .github/workflows/create-wth-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index bae23c269e..be79543f51 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -28,12 +28,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV + - run: gh release delete ${{ env.TAG }} --cleanup-tag --yes 2>/dev/null + continue-on-error: true - run: | cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * - gh release delete ${{ env.TAG }} --yes 2>/dev/null - gh release create ${{ env.TAG }} \ --title "Student Resources for ${{ matrix.hackathonName }}" \ --notes "Student Resources for ${{ matrix.hackathonName }}" \ From 538ffd7dd0a335b0e7abdbeeea2d01fbaabeee77 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 17:00:22 -0600 Subject: [PATCH 26/51] release --- .github/workflows/create-wth-release.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index be79543f51..1f92a6d7e4 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -28,8 +28,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV - - run: gh release delete ${{ env.TAG }} --cleanup-tag --yes 2>/dev/null - continue-on-error: true + - run: | + OUTPUT=$(gh release view ${{ env.TAG }}) + if [[ $OUTPUT == "release not found" ]]; then + echo "Release not found, continuing..." + else + echo "Release found, deleting..." + gh release delete ${{ env.TAG }} --cleanup-tag --yes + fi - run: | cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * From 43bfd5b077bac266c71bba0cfd477a18de40ee40 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 17:03:11 -0600 Subject: [PATCH 27/51] release --- .github/workflows/create-wth-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 1f92a6d7e4..2a4af259f3 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -36,6 +36,8 @@ jobs: echo "Release found, deleting..." gh release delete ${{ env.TAG }} --cleanup-tag --yes fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * From f8acee7f882e0cbba781683fa9965e27e780bf80 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 17:06:42 -0600 Subject: [PATCH 28/51] release --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 21b42fb95d..c1f62b08de 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index b964d6525e..83d8f9067d 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 601273d6abae58311e4d1a23268c51fc6f19dd67 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 19:44:14 -0600 Subject: [PATCH 29/51] exit code --- .github/workflows/create-wth-release.yml | 4 ++-- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 2a4af259f3..93dc3da93a 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -29,8 +29,8 @@ jobs: uses: actions/checkout@v4 - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV - run: | - OUTPUT=$(gh release view ${{ env.TAG }}) - if [[ $OUTPUT == "release not found" ]]; then + OUTPUT=$(gh release view ${{ env.TAG }} 2>&1) + if [[ $OUTPUT -ne 0 ]]; then echo "Release not found, continuing..." else echo "Release found, deleting..." diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index c1f62b08de..06c00c1e9a 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 83d8f9067d..2a036ec079 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 178f58d03831df2d1ec963e8a10f71bb0f44db90 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 19:52:02 -0600 Subject: [PATCH 30/51] return --- .github/workflows/create-wth-release.yml | 3 ++- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release.yml index 93dc3da93a..89fd61b8c9 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release.yml @@ -29,7 +29,8 @@ jobs: uses: actions/checkout@v4 - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV - run: | - OUTPUT=$(gh release view ${{ env.TAG }} 2>&1) + OUTPUT=0 + gh release view ${{ env.TAG }} || OUTPUT=$? if [[ $OUTPUT -ne 0 ]]; then echo "Release not found, continuing..." else diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 06c00c1e9a..72502c7066 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 2a036ec079..bc3c6bc84e 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 7143b3b725f03dcadfe0525532669952a97657eb Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 20:00:21 -0600 Subject: [PATCH 31/51] naming --- .../{create-wth-release.yml => create-wth-release-common.yml} | 2 +- .github/workflows/create-wth-release-push.yml | 4 ++-- .github/workflows/create-wth-release-workflow_dispatch.yml | 4 ++-- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename .github/workflows/{create-wth-release.yml => create-wth-release-common.yml} (97%) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release-common.yml similarity index 97% rename from .github/workflows/create-wth-release.yml rename to .github/workflows/create-wth-release-common.yml index 89fd61b8c9..7652d4cdfc 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release-common.yml @@ -1,4 +1,4 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Common on: workflow_call: diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 52d34d545e..bd57206e97 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -1,4 +1,4 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Push on: push: @@ -34,7 +34,7 @@ jobs: echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon - uses: ./.github/workflows/create-wth-release.yml + uses: ./.github/workflows/create-wth-release-common.yml with: hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: 'Student/Resources' diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml index dba25e60d3..11bfabff0f 100644 --- a/.github/workflows/create-wth-release-workflow_dispatch.yml +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -1,4 +1,4 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Manual on: workflow_dispatch: @@ -33,7 +33,7 @@ jobs: echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon - uses: ./.github/workflows/create-wth-release.yml + uses: ./.github/workflows/create-wth-release-common.yml with: hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: ${{ inputs.pathToStudentResources }} diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 72502c7066..05647f06cd 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index bc3c6bc84e..39710ec78f 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -9,7 +9,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Publish / Subscribe - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf - +sdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 541e35042fe2b554001da24fa79223401326eaf3 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 20:03:53 -0600 Subject: [PATCH 32/51] asdf --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 05647f06cd..21f4af24b0 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 39710ec78f..f5b4a0d7a4 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -9,7 +9,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Publish / Subscribe - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -sdf +sdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From cb95485283c388ef52d402b899ea2a55490f790d Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 20:12:59 -0600 Subject: [PATCH 33/51] naming --- .github/workflows/create-wth-release-common.yml | 3 +++ 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-wth-release-common.yml b/.github/workflows/create-wth-release-common.yml index 7652d4cdfc..c4b75f37e6 100644 --- a/.github/workflows/create-wth-release-common.yml +++ b/.github/workflows/create-wth-release-common.yml @@ -28,6 +28,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV + name: Set tag - run: | OUTPUT=0 gh release view ${{ env.TAG }} || OUTPUT=$? @@ -39,6 +40,7 @@ jobs: fi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + name: Delete ${{ env.TAG }} release if it exists - run: | cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} zip -r ${{ env.RESOURCES_FILENAME }} * @@ -52,3 +54,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RESOURCES_FILENAME: Resources + name: Create ${{ env.TAG }} release diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 21f4af24b0..4b1ca6ba95 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index f5b4a0d7a4..6aa21c4825 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -9,7 +9,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Publish / Subscribe - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -sdfasdf +sdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 8946f4eb7c6e7732bbc7cb6ada98f49496aabd04 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 20:23:06 -0600 Subject: [PATCH 34/51] tag --- .github/workflows/create-wth-release-common.yml | 2 ++ 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-wth-release-common.yml b/.github/workflows/create-wth-release-common.yml index c4b75f37e6..98c285c256 100644 --- a/.github/workflows/create-wth-release-common.yml +++ b/.github/workflows/create-wth-release-common.yml @@ -51,6 +51,8 @@ jobs: --target ${{ inputs.branchName }} gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip + + gh release edit ${{ env.TAG }} --draft=false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RESOURCES_FILENAME: Resources diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 4b1ca6ba95..f8771bef16 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 6aa21c4825..f25c7fd20f 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -9,7 +9,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Publish / Subscribe - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -sdfasdfasdf +sdfasdfasdfasdf As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 18e03f18e1e0550c30c33083eb5b0bdcc778c243 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Tue, 21 Nov 2023 20:26:25 -0600 Subject: [PATCH 35/51] tag --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index f8771bef16..bbabf5e6aa 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffds 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index f25c7fd20f..4c4b43097a 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf sdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg Dapr application to run in Azure Kubernetes Service. ## Learning Objectives From 544cb4737dd8189693620457ed6e0a2817f1c4fa Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Wed, 22 Nov 2023 08:08:17 -0600 Subject: [PATCH 36/51] asdf --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index bbabf5e6aa..cff206921b 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffds +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index 4c4b43097a..f29d5843b4 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf sdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg Dapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg asdfDapr application to run in Azure Kubernetes Service. ## Learning Objectives From 291a6b8efaeaaf96180cbe8b50ef66d2f790a5d1 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Wed, 22 Nov 2023 08:17:35 -0600 Subject: [PATCH 37/51] 2 files --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index cff206921b..799dbea3b6 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index f29d5843b4..a19b7ae2fc 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -10,7 +10,7 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - Bindings - Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf sdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg asdfDapr application to run in Azure Kubernetes Service. +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg asdfasdfasdfDapr application to run in Azure Kubernetes Service. ## Learning Objectives From 87160ac3969397bed7e583050b704b61f44a3053 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Wed, 22 Nov 2023 08:33:19 -0600 Subject: [PATCH 38/51] releaser --- ...ease.yml => create-wth-release-common.yml} | 38 ++++++++++++------ .github/workflows/create-wth-release-push.yml | 13 ++++-- .../create-wth-release-workflow_dispatch.yml | 21 ++++++++-- 000-HowToHack/WTH-HowToHostAHack.md | 8 ++-- ...-a-release-for-a-whatthehack-hackathon.png | Bin 116923 -> 109225 bytes 5 files changed, 57 insertions(+), 23 deletions(-) rename .github/workflows/{create-wth-release.yml => create-wth-release-common.yml} (50%) diff --git a/.github/workflows/create-wth-release.yml b/.github/workflows/create-wth-release-common.yml similarity index 50% rename from .github/workflows/create-wth-release.yml rename to .github/workflows/create-wth-release-common.yml index 7c6c544a1f..98c285c256 100644 --- a/.github/workflows/create-wth-release.yml +++ b/.github/workflows/create-wth-release-common.yml @@ -1,9 +1,9 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Common on: workflow_call: inputs: - hackathonName: + hackathonNames: description: "The name of the hackathon to create a release for" required: true type: string @@ -18,30 +18,42 @@ on: jobs: package: + strategy: + matrix: + hackathonName: ${{ fromJSON(inputs.hackathonNames) }} runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout repository uses: actions/checkout@v4 - - run: echo "TAG=${{ inputs.hackathonName }}" >> $GITHUB_ENV + - run: echo "TAG=${{ matrix.hackathonName }}" >> $GITHUB_ENV + name: Set tag - run: | - cd ${{ inputs.hackathonName }}/${{ inputs.pathToStudentResources }} - zip -r ${{ env.RESOURCES_FILENAME }} * - - output=$(gh release delete "${{ env.TAG }}" --cleanup-tag --yes 2>&1) || [[ "${output}" == "release not found" ]] - - if [[ "${output}" != "release not found" ]]; then - echo "Release ${{ env.TAG }} already exists. Deleting it." - gh release delete "${{ env.TAG }}" --cleanup-tag --yes + OUTPUT=0 + gh release view ${{ env.TAG }} || OUTPUT=$? + if [[ $OUTPUT -ne 0 ]]; then + echo "Release not found, continuing..." + else + echo "Release found, deleting..." + gh release delete ${{ env.TAG }} --cleanup-tag --yes fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + name: Delete ${{ env.TAG }} release if it exists + - run: | + cd ${{ matrix.hackathonName }}/${{ inputs.pathToStudentResources }} + zip -r ${{ env.RESOURCES_FILENAME }} * gh release create ${{ env.TAG }} \ - --title "Student Resources for ${{ inputs.hackathonName }}" \ - --notes "Student Resources for ${{ inputs.hackathonName }}" \ + --title "Student Resources for ${{ matrix.hackathonName }}" \ + --notes "Student Resources for ${{ matrix.hackathonName }}" \ --target ${{ inputs.branchName }} gh release upload ${{ env.TAG }} ${{ env.RESOURCES_FILENAME }}.zip + + gh release edit ${{ env.TAG }} --draft=false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RESOURCES_FILENAME: Resources + name: Create ${{ env.TAG }} release diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 8e7448c9e0..bd57206e97 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -1,4 +1,4 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Push on: push: @@ -11,7 +11,7 @@ jobs: permissions: contents: write outputs: - all_changed_hackathons: ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} + all_changed_hackathons: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} steps: - name: Checkout repository uses: actions/checkout@v4 @@ -27,10 +27,15 @@ jobs: 000-HowToHack/** _layouts/** _assets/** + - name: Convert space-separated string to JSON array + id: convert-to-json-array + run: | + JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr -d '\n' | jq -R -s -c 'split(" ")') + echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon - uses: ./.github/workflows/create-wth-release.yml + uses: ./.github/workflows/create-wth-release-common.yml with: - hackathonName: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} + hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: 'Student/Resources' branchName: release \ No newline at end of file diff --git a/.github/workflows/create-wth-release-workflow_dispatch.yml b/.github/workflows/create-wth-release-workflow_dispatch.yml index 25ca62588e..11bfabff0f 100644 --- a/.github/workflows/create-wth-release-workflow_dispatch.yml +++ b/.github/workflows/create-wth-release-workflow_dispatch.yml @@ -1,4 +1,4 @@ -name: Create a release for a WhatTheHack hackathon +name: Create a WTH Release - Manual on: workflow_dispatch: @@ -17,10 +17,25 @@ on: default: "master" jobs: + determine-changed-hackathon: + runs-on: ubuntu-latest + permissions: + contents: write + outputs: + all_changed_hackathons: ${{ steps.convert-to-json-array.outputs.all_changed_hackathons }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Convert space-separated string to JSON array + id: convert-to-json-array + run: | + JSON_ARRAY=$(echo ${{ inputs.hackathonName }} | tr -d '\n' | jq -R -s -c 'split(" ")') + echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: - uses: ./.github/workflows/create-wth-release.yml + needs: determine-changed-hackathon + uses: ./.github/workflows/create-wth-release-common.yml with: - hackathonName: ${{ inputs.hackathonName }} + hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} pathToStudentResources: ${{ inputs.pathToStudentResources }} branchName: ${{ inputs.branchName }} diff --git a/000-HowToHack/WTH-HowToHostAHack.md b/000-HowToHack/WTH-HowToHostAHack.md index 35951da746..20534810eb 100644 --- a/000-HowToHack/WTH-HowToHostAHack.md +++ b/000-HowToHack/WTH-HowToHostAHack.md @@ -204,7 +204,11 @@ You should also upload both the Event Kickoff presentation and any lecture prese ##### Student Resources export tool -You can use the **Create a release for a WhatTheHack hackathon** GitHub Action to make it easier to export just the `Student/Resources` directory as a ZIP file. This will create a release in the repo with the ZIP file as an asset. You can then download the ZIP file and upload it to the General channel's Files tab. +Many hacks will already have a GitHub Release ZIP file which includes the hack's `Student/Resources` directory. You can use this ZIP file directly if you don't need to make any changes to the hack (a GitHub Action will create this ZIP file on each push to the `master` branch, so the ZIP file should be up-to-date with the latest changes). + +![releases-resources-zip-file](images/releases-resources-zip-file.png) + +If the ZIP file doesn't exist or you need to make changes to the content in the repo, you can use the **Create a WTH Release - Manual** GitHub Action to make it easier to export just the `Student/Resources` directory as a ZIP file. This will create a release in the repo with the ZIP file as an asset. You can then download the ZIP file and upload it to the General channel's Files tab. Here are the steps to use the tool to export the Student Resources: @@ -227,8 +231,6 @@ Here are the steps to use the tool to export the Student Resources: 1. Expand the **Assets** section. 1. Click on the **Resources.zip** file to download it. - ![releases-resources-zip-file](images/releases-resources-zip-file.png) - #### Shared Tips/Wiki (Optional) During a What The Hack event, attendees are strongly encouraged to share knowledge and learn from each other. Knowledge sharing is encouraged across the entire event, including between squads. diff --git a/000-HowToHack/images/create-a-release-for-a-whatthehack-hackathon.png b/000-HowToHack/images/create-a-release-for-a-whatthehack-hackathon.png index fe7fdfb4856a487dc5387b3f6d5c0730fc39ff66..45c544280a95a4d5e8b2ddfafc144ba026ba4dc7 100644 GIT binary patch literal 109225 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 z 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 KMNUMnLSTYHzAd}} literal 116923 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 From 091726b8a8df55d8416a8bb87a4c0aa5960889e9 Mon Sep 17 00:00:00 2001 From: Jordan Bean <84806584+jordanbean-msft@users.noreply.github.com> Date: Mon, 4 Dec 2023 08:03:43 -0600 Subject: [PATCH 39/51] Delete .github/workflows/create-new-hack-openai.yml --- .github/workflows/create-new-hack-openai.yml | 50 -------------------- 1 file changed, 50 deletions(-) delete mode 100644 .github/workflows/create-new-hack-openai.yml diff --git a/.github/workflows/create-new-hack-openai.yml b/.github/workflows/create-new-hack-openai.yml deleted file mode 100644 index 2ef1f4de10..0000000000 --- a/.github/workflows/create-new-hack-openai.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Create new hack with OpenAI - -on: - workflow_dispatch: - inputs: - hackName: - description: The name of the hack you want to create - required: true - default: YetAnotherHack - description: - description: A description of the hack - required: true - default: "Create a WhatTheHack for creating a WhatTheHack." - keywords: - description: A comma separated list of keywords (these will be used to guide the AI to generate challenges) - required: true - default: "WhatTheHack, GitHub, Actions, AI" - numberOfChallenges: - description: The number of challenges you want (note that it is better to auto-generate more challenges than you think you will need, you can always delete the files later) - required: true - default: "3" -jobs: - createNewWhatTheHackTemplate: - runs-on: ubuntu-latest - permissions: - contents: write - env: - BRANCH_NAME: xxx-${{ github.event.inputs.hackName }} - steps: - - uses: actions/checkout@v3 - - name: Create new branch - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - git checkout -b ${{ env.BRANCH_NAME }} - - name: setup python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - name: install python packages - run: | - python -m pip install --upgrade pip - pip install -r ${{ github.workspace }}/.github/workflows/create-wth-template-openai/requirements.txt - - name: Generate WhatTheHack template stubs - run: python ${{ github.workspace }}/.github/workflows/create-wth-template-openai/create-wth-template-openai.py -p ${{ github.workspace }} -c "${{ github.event.inputs.numberOfChallenges}}" -n "${{ github.event.inputs.hackName }}" -d "${{ github.event.inputs.description }}" -k "${{ github.event.inputs.keywords }}" -e "${{ secrets.OPENAI_ENDPOINT_URI }}" -a "${{ secrets.OPENAI_API_KEY }}" -r -v - - name: Push branch - run: | - git add * - git commit -m 'Created WhatTheHack template stub' - git push -u origin ${{ env.BRANCH_NAME }} From d0a4636d839b055ca1472e3041b77c88c50ab17f Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 08:35:24 -0600 Subject: [PATCH 40/51] subdir --- .github/workflows/create-wth-release-push.yml | 2 ++ .gitignore | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index bd57206e97..d0735edf98 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -22,6 +22,8 @@ jobs: dir_names: true dir_names_exclude_current_dir: true dir_names_max_depth: 1 + files: + Student/Resources/** files_ignore: | .github/** 000-HowToHack/** diff --git a/.gitignore b/.gitignore index c2fd5482d4..95da724773 100644 --- a/.gitignore +++ b/.gitignore @@ -333,4 +333,6 @@ ASALocalRun/ .mfractor/ .DS_Store -.env \ No newline at end of file +.env + +.vscode/ \ No newline at end of file From ad73b67d42224a54c945b57d6f5620f2309f5e02 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 08:36:28 -0600 Subject: [PATCH 41/51] intro --- 001-IntroToKubernetes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 2302ca57cb..77db10b15a 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. - +asdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring From 4d26070df05cc535df7dfe077e38d53563c9ca7d Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 08:37:57 -0600 Subject: [PATCH 42/51] intro --- 001-IntroToKubernetes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 77db10b15a..2302ca57cb 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdf + 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring From eaa7cc497f476d943abb963423d26cd6c92a2a4c Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 08:43:46 -0600 Subject: [PATCH 43/51] release --- 001-IntroToKubernetes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 799dbea3b6..aabb1b3ce0 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring From 41a1139bd4072ea7e13b21e6968139a10bae571a Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:02:28 -0600 Subject: [PATCH 44/51] empty --- .github/workflows/create-wth-release-push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index d0735edf98..4169377c12 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -36,6 +36,7 @@ jobs: echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" package: needs: determine-changed-hackathon + if: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons != '[]' }} uses: ./.github/workflows/create-wth-release-common.yml with: hackathonNames: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons }} From f22d819854ebb5834093012b269c952df91eda67 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:06:50 -0600 Subject: [PATCH 45/51] warning --- .github/workflows/create-wth-release-push.yml | 2 +- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/Student/Resources/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 4169377c12..0a4dbb5c13 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -33,7 +33,7 @@ jobs: id: convert-to-json-array run: | JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr -d '\n' | jq -R -s -c 'split(" ")') - echo "::set-output name=all_changed_hackathons::$JSON_ARRAY" + echo "{all_changed_hackathons}={$JSON_ARRAY}" >> $GITHUB_OUTPUT package: needs: determine-changed-hackathon if: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons != '[]' }} diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index aabb1b3ce0..b6f0fdc5a1 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/Student/Resources/README.md b/047-TrafficControlWithDapr/Student/Resources/README.md index d50ced425a..c4f87b1669 100644 --- a/047-TrafficControlWithDapr/Student/Resources/README.md +++ b/047-TrafficControlWithDapr/Student/Resources/README.md @@ -13,7 +13,7 @@ The traffic-control application architecture consists of four microservices: - The **Camera Simulation** is a .NET Core console application that will simulate passing cars. - The **Traffic Control Service** is an ASP.NET Core WebAPI application that offers entry and exit endpoints: `/entrycam` and `/exitcam`. - The **Fine Collection Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/collectfine` for collecting fines. -- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle. +- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdf These services compose together to simulate a traffic control scenario. From 8a6389c5cf21f10c600d7b024d8ed0cbc9651bb1 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:21:51 -0600 Subject: [PATCH 46/51] nothing --- .github/workflows/create-wth-release-push.yml | 2 +- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/Student/Resources/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 0a4dbb5c13..74f4358ef0 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -23,7 +23,7 @@ jobs: dir_names_exclude_current_dir: true dir_names_max_depth: 1 files: - Student/Resources/** + '**/Student/Resources/**' files_ignore: | .github/** 000-HowToHack/** diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index b6f0fdc5a1..7881744c47 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/Student/Resources/README.md b/047-TrafficControlWithDapr/Student/Resources/README.md index c4f87b1669..439efc4b8a 100644 --- a/047-TrafficControlWithDapr/Student/Resources/README.md +++ b/047-TrafficControlWithDapr/Student/Resources/README.md @@ -13,7 +13,7 @@ The traffic-control application architecture consists of four microservices: - The **Camera Simulation** is a .NET Core console application that will simulate passing cars. - The **Traffic Control Service** is an ASP.NET Core WebAPI application that offers entry and exit endpoints: `/entrycam` and `/exitcam`. - The **Fine Collection Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/collectfine` for collecting fines. -- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdf +- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdfasdf These services compose together to simulate a traffic control scenario. From 778098bc84f11fbf59d56211502a74dcfca61e0b Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:50:46 -0600 Subject: [PATCH 47/51] release --- .github/workflows/create-wth-release-push.yml | 2 +- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/Student/Resources/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index 74f4358ef0..cbd9265277 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -33,7 +33,7 @@ jobs: id: convert-to-json-array run: | JSON_ARRAY=$(echo ${{ steps.changed-hackathon-directories.outputs.all_changed_files }} | tr -d '\n' | jq -R -s -c 'split(" ")') - echo "{all_changed_hackathons}={$JSON_ARRAY}" >> $GITHUB_OUTPUT + echo "all_changed_hackathons=$JSON_ARRAY" >> $GITHUB_OUTPUT package: needs: determine-changed-hackathon if: ${{ needs.determine-changed-hackathon.outputs.all_changed_hackathons != '[]' }} diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 7881744c47..1fafc23f9f 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/Student/Resources/README.md b/047-TrafficControlWithDapr/Student/Resources/README.md index 439efc4b8a..65972afa6b 100644 --- a/047-TrafficControlWithDapr/Student/Resources/README.md +++ b/047-TrafficControlWithDapr/Student/Resources/README.md @@ -13,7 +13,7 @@ The traffic-control application architecture consists of four microservices: - The **Camera Simulation** is a .NET Core console application that will simulate passing cars. - The **Traffic Control Service** is an ASP.NET Core WebAPI application that offers entry and exit endpoints: `/entrycam` and `/exitcam`. - The **Fine Collection Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/collectfine` for collecting fines. -- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdfasdf +- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdfasdfasdf These services compose together to simulate a traffic control scenario. From 78bf44cea56a66836e4f9ec7e078893e6f6627f8 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:53:26 -0600 Subject: [PATCH 48/51] rlease --- 001-IntroToKubernetes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 1fafc23f9f..422d6b0fc2 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdfasdf +asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdfasdfasdf 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring From 84ceb679278279332ccda61f47668db8a71fca98 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:57:52 -0600 Subject: [PATCH 49/51] releaser --- 001-IntroToKubernetes/README.md | 2 +- 047-TrafficControlWithDapr/README.md | 6 +++--- 047-TrafficControlWithDapr/Student/Resources/README.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/001-IntroToKubernetes/README.md b/001-IntroToKubernetes/README.md index 422d6b0fc2..2302ca57cb 100644 --- a/001-IntroToKubernetes/README.md +++ b/001-IntroToKubernetes/README.md @@ -9,7 +9,7 @@ This hack starts off by covering containers, what problems they solve, and why K ## Learning Objectives In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it. -asdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdffdsasdfasdfasdfasdfasdfasdfasdf + 1. Containerize an application 1. Deploy a Kubernetes cluster in Azure and deploy applications to it. 1. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring diff --git a/047-TrafficControlWithDapr/README.md b/047-TrafficControlWithDapr/README.md index a19b7ae2fc..95473bf607 100644 --- a/047-TrafficControlWithDapr/README.md +++ b/047-TrafficControlWithDapr/README.md @@ -8,9 +8,9 @@ This hack contains several hands-on challenges that will introduce you to [Dapr] - State-management - Publish / Subscribe - Bindings -- Secrets managementasdfasdfasdfasdfasdfsdfasdfasdfasdf -sdfasdfasdfasdf -As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode onasdfasdfasdfasdf asdfasdfyour computer. Then, you'll deploy thefsfdg asdfasdfasdfDapr application to run in Azure Kubernetes Service. +- Secrets management + +As Dapr can run on a variety of hosts, you'll start by running Dapr in self-hosted mode on your computer. Then, you'll deploy the Dapr application to run in Azure Kubernetes Service. ## Learning Objectives diff --git a/047-TrafficControlWithDapr/Student/Resources/README.md b/047-TrafficControlWithDapr/Student/Resources/README.md index 65972afa6b..d50ced425a 100644 --- a/047-TrafficControlWithDapr/Student/Resources/README.md +++ b/047-TrafficControlWithDapr/Student/Resources/README.md @@ -13,7 +13,7 @@ The traffic-control application architecture consists of four microservices: - The **Camera Simulation** is a .NET Core console application that will simulate passing cars. - The **Traffic Control Service** is an ASP.NET Core WebAPI application that offers entry and exit endpoints: `/entrycam` and `/exitcam`. - The **Fine Collection Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/collectfine` for collecting fines. -- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle.asdfasdfasdf +- The **Vehicle Registration Service** is an ASP.NET Core WebAPI application that offers 1 endpoint: `/getvehicleinfo/{license-number}` for retrieving vehicle and owner information of a vehicle. These services compose together to simulate a traffic control scenario. From d4b515d5a1bccf4a793a23a6e1ab96aa6db0cf61 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 09:59:25 -0600 Subject: [PATCH 50/51] removing settings --- .vscode/settings.json | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ef721ec972..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "PATH": "C:\\Users\\jordanbean\\.azurelogicapps\\dependencies\\DotNetSDK;${env:PATH}" - }, - "omnisharp.dotNetCliPaths": [ - "C:\\Users\\jordanbean\\.azurelogicapps\\dependencies\\DotNetSDK" - ] -} \ No newline at end of file From c9d3aac57d44fd2a9418762c3c4eaff7a4f48546 Mon Sep 17 00:00:00 2001 From: Jordan Bean Date: Mon, 18 Dec 2023 12:44:16 -0600 Subject: [PATCH 51/51] branch --- .github/workflows/create-wth-release-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-wth-release-push.yml b/.github/workflows/create-wth-release-push.yml index cbd9265277..8d5ef591a1 100644 --- a/.github/workflows/create-wth-release-push.yml +++ b/.github/workflows/create-wth-release-push.yml @@ -3,7 +3,7 @@ name: Create a WTH Release - Push on: push: branches: - - release + - master jobs: determine-changed-hackathon: