Browse Source

Add json index of files to CI uploads (#24097)

Joel Challis 2 years ago
parent
commit
063f1444c6

+ 3 - 2
.github/workflows/ci_build_major_branch.yml

@@ -95,11 +95,12 @@ jobs:
         run: |
         run: |
           python3 -m pip install -r ./util/ci/requirements.txt
           python3 -m pip install -r ./util/ci/requirements.txt
           ./util/ci/index_generator.py > index.html
           ./util/ci/index_generator.py > index.html
+          ./util/ci/firmware_list_generator.py > firmware_list.json
 
 
       - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
       - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
         uses: jakejarvis/s3-sync-action@master
         uses: jakejarvis/s3-sync-action@master
         with:
         with:
-          args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include '*.hex' --include '*.bin' --include '*.uf2'
+          args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
         env:
         env:
           AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
           AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
           AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
           AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
@@ -112,7 +113,7 @@ jobs:
       - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
       - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
         uses: jakejarvis/s3-sync-action@master
         uses: jakejarvis/s3-sync-action@master
         with:
         with:
-          args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include '*.hex' --include '*.bin' --include '*.uf2'
+          args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
         env:
         env:
           AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
           AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
           AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
           AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}

+ 1 - 0
.gitignore

@@ -26,6 +26,7 @@
 *.stackdump
 *.stackdump
 *.sym
 *.sym
 index.html
 index.html
+firmware_list.json
 
 
 # QMK-specific
 # QMK-specific
 api_data/v1
 api_data/v1

+ 26 - 0
util/ci/firmware_list_generator.py

@@ -0,0 +1,26 @@
+import os
+import json
+from pathlib import Path
+from time import gmtime, strftime
+
+DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S %Z'
+
+def current_datetime():
+    return strftime(DATETIME_FORMAT, gmtime())
+
+
+qmk_firmware_dir = Path(os.path.realpath(__file__)).parents[2]
+
+binaries = []
+binaries.extend(qmk_firmware_dir.glob("*.bin"))
+binaries.extend(qmk_firmware_dir.glob("*.hex"))
+binaries.extend(qmk_firmware_dir.glob("*.uf2"))
+binaries = list(sorted(binaries))
+
+data = []
+for binary in binaries:
+    data.append(binary.name)
+
+keyboard_all_json = json.dumps({'last_updated': current_datetime(), 'files': data}, separators=(',', ':'))
+
+print(keyboard_all_json)

+ 2 - 1
util/ci/templates/index.html.j2

@@ -3,6 +3,7 @@
 
 
 <head>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="icon" href="https://qmk.fm/logo.png" />
     <style type="text/css">
     <style type="text/css">
         {{ ansi2html_styles }}
         {{ ansi2html_styles }}
 
 
@@ -66,7 +67,7 @@
     <div style="float: left">
     <div style="float: left">
         <div class="container">
         <div class="container">
             <div style="display: table-cell; vertical-align: middle;">
             <div style="display: table-cell; vertical-align: middle;">
-                <a href="https://qmk.fm/"><img src="https://qmk.fm/assets/images/badge-community-dark.svg" style="width: 30em;" /></a>
+                <a href="https://qmk.fm/"><img src="https://qmk.fm/badge-community-dark.svg" style="width: 30em;" /></a>
             </div>
             </div>
             <div class="header-container">
             <div class="header-container">
                 <div>
                 <div>