diff --git a/.github/workflows/dynamo.yml b/.github/workflows/dynamo.yml new file mode 100644 index 0000000000..a8d4d82d45 --- /dev/null +++ b/.github/workflows/dynamo.yml @@ -0,0 +1,101 @@ +name: "Test supported 💿️" + +on: + workflow_dispatch: + + push: + branches: + - '**' + paths: + - quickget + + pull_request: + branches: + - '**' + paths: + - quickget + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + generate-matrix: + name: "Generate 💿️ Matrix" + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: "Checkout repository" + uses: actions/checkout@v4 + + - name: "💿️ Matrix" + id: set-matrix + run: | + FILES=$(find actions/ -maxdepth 1 -type f -printf "%f\n" | sort) + MATRIX="{\"include\": [" + for file in $FILES; do + MATRIX+="{\"file\": \"$file\"}," + done + MATRIX="${MATRIX%,}]}" + echo "Generated Matrix: $MATRIX" + echo "matrix=$MATRIX" >> $GITHUB_OUTPUT + + - name: "Install dependencies 📦️" + run: | + sudo apt-get -y update + sudo apt-get -y install curl jq + + run-actions: + name: "💿️" + needs: generate-matrix + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} + steps: + - name: "Checkout repository" + uses: actions/checkout@v4 + + - name: "Checkout 👟 ${{ matrix.file }}" + run: | + mkdir -p results + ./quickget --check ${{ matrix.file }} | tee results/${{ matrix.file }}.txt + if grep -vqE '^(PASS:|SKIP:)' results/${{ matrix.file }}.txt; then + grep -vE '^(PASS:|SKIP:)' results/${{ matrix.file }}.txt >> $GITHUB_STEP_SUMMARY + exit 1 + fi + + + - name: "Upload Results ⬆️" + if: always() + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.file }}.txt + path: results/${{ matrix.file }}.txt + + end: + name: "Finish 🏁" + needs: run-actions + if: always() + runs-on: ubuntu-latest + steps: + - name: "Checkout repository" + uses: actions/checkout@v4 + + - name: "Download results ⬇️" + uses: actions/download-artifact@v4 + with: + path: results + merge-multiple: true + + - name: "Display results 📊" + run: | + for file in results/*.txt; do + cat "$file" >> result + done + PASSED=$(grep -c '^PASS:' result | wc -l) + FAILED=$(grep -c '^FAIL:' result | wc -l 2>/dev/null | echo '0') + SKIPPED=$(grep -c '^SKIP:' result | wc -l) + echo "$PASSED/$FAILED 🏁 / 💀" >> $GITHUB_STEP_SUMMARY + echo "$SKIPPED Skipped" >> $GITHUB_STEP_SUMMARY diff --git a/.gitmodules b/.gitmodules index 52e40d62cb..21fc7ece91 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "build-docs"] path = build-docs - url = git@github.com:philclifford/quickemu-docs.git + url = https://github.com/philclifford/quickemu-docs.git diff --git a/README.md b/README.md index cb9fa95ddf..358adb7351 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ required to run the virtual machines. ## As featured on [Linux Matters](https://linuxmatters.sh) podcast! -The presenters of Linux Matters 🐧🎙️ are the creators of each of the principle Quickemu projects. We discussed Quickemu's 2024 reboot in [Episode 30 - Quickemu Rising From the Bashes](https://linuxmatters.sh/30). +The presenters of Linux Matters 🐧🎙️ are the creators of each of the principal Quickemu projects. We discussed Quickemu's 2024 reboot in [Episode 30 - Quickemu Rising From the Bashes](https://linuxmatters.sh/30).