diff --git a/.github/workflows/master_physaci.yml b/.github/workflows/master_physaci.yml index a7f7c24..e6296c1 100644 --- a/.github/workflows/master_physaci.yml +++ b/.github/workflows/master_physaci.yml @@ -4,15 +4,21 @@ name: Build and deploy Python app to Azure Web App - physaci on: + release: + types: [published] push: - branches: - - master + pull_request: jobs: build-and-deploy: runs-on: ubuntu-latest steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@master - name: Set up Python version @@ -30,4 +36,5 @@ jobs: with: app-name: 'physaci' slot-name: 'production' - publish-profile: ${{ secrets.AzureAppService_PublishProfile_4e92bde43d604530a3bf366d0fc7e028 }} \ No newline at end of file + publish-profile: ${{ secrets.AzureAppService_PublishProfile_4e92bde43d604530a3bf366d0fc7e028 }} + if: ${{ github.event_name == 'release' }} \ No newline at end of file diff --git a/static/images/physaci_rosiepi_event_sequence.png b/static/images/physaci_rosiepi_event_sequence.png new file mode 100644 index 0000000..2a1771c Binary files /dev/null and b/static/images/physaci_rosiepi_event_sequence.png differ diff --git a/static/index.css b/static/index.css index 4fdee0c..fe52765 100644 --- a/static/index.css +++ b/static/index.css @@ -5,7 +5,7 @@ body { .index-page { display: grid; grid-template-columns: 2fr; - grid-template-rows: 1fr 3fr; + grid-template-rows: 1fr 6fr; justify-items: center; } @@ -47,31 +47,49 @@ body { .div-content { display: grid; grid-template-columns: 1fr 2fr 1fr; - grid-row-gap: 20px; + grid-row-gap: 2rem; grid-template-areas: - " about about about " - " . features . " - " snail snail snail" + " about-physaci about-physaci about-physaci " + " about-rosiepi about-rosiepi about-rosiepi " + " event_seq event_seq event_seq" + " snail snail snail" } .div-about-physaci { - grid-area: about; + grid-area: about-physaci; display: flex; justify-content: center; + border-bottom: 2px solid #D0BB98; + padding-bottom: 1rem; +} + +.div-about-rosiepi { + grid-area: about-rosiepi; + display: flex; + justify-content: center; + border-bottom: 2px solid #D0BB98; + padding-bottom: 1rem; } -.about-physaci { +article { width: 90%; text-align: justify; - font-size: 3rem; + font-size: 2.5rem; font-family: Arial, Helvetica, sans-serif; } -.feature-list { - grid-area: features; - text-align: start; - font-size: 2.7rem; - font-family: monospace; + +.div-event-seq { + grid-area: event_seq; + display: flex; + flex-direction: column; + align-items: center; + border-bottom: 2px solid #D0BB98; + padding-bottom: 1rem; +} + +.event-seq { + align-self: center; } .div-about-snail { diff --git a/static/job_results.css b/static/job_results.css index 83ee457..da05491 100644 --- a/static/job_results.css +++ b/static/job_results.css @@ -25,7 +25,7 @@ font-size: large; font-weight: 600; padding: .5em; - color: #313131; + color: #8E98A5; border-top-left-radius: 8px; border-top-right-radius: 8px; } @@ -37,4 +37,5 @@ font-size: large; font-weight: 400; padding: 3px; + border-top: 2px solid #D0BB98; } \ No newline at end of file diff --git a/templates/header.html b/templates/header.html new file mode 100644 index 0000000..980decb --- /dev/null +++ b/templates/header.html @@ -0,0 +1,4 @@ + + + physaCI + diff --git a/templates/index.html b/templates/index.html index 380ffcd..98728a3 100644 --- a/templates/index.html +++ b/templates/index.html @@ -9,34 +9,45 @@
- - - physaCI - + {% include 'header.html' -%}
- physaCI is a Continuous Integration (CI) platform designed to enable - automated, physical testing of CircuitPython firmware updates. - The key components are a REST API framework, physical testing nodes hosted on Raspberry Pi single-board computers, and - integration with GitHub. + + physaCI, combined with RosiePi, is a Continuous Integration (CI) platform designed to enable automated, + physical testing of CircuitPython firmware changes. + The goal, as with all CI, is to help find code changes that break functionality before they reach the user. + physaCI is the integration layer that links GitHub events with RosiPi test nodes. physaCI runs on + Microsoft Azure, as an Azure Functions serverless application.
-
- Features Include: -
    -
  • GitHub integration via a GitHub App
  • -
  • Standardized, self-updating Raspberry Pi Ansible configuration
  • -
  • Microsoft Azure hosted backend
  • -
  • 100% Open Source & MIT Licensed
  • -
+
+
+ + RosiePi, is the workhorse of this combination. It is a collection of programs and services configured + to integrate physaCI events with running the actual physical tests. RosiePi test nodes are run on + Raspberry Pi single-board computers. Nodes register + themselves with physaCI on a scheduled basis, allowing physaCI to send push notification-style messages and + queue jobs in a balanced manner. Once a node has queued a test job, it will compile the firmware for each connected + CircuitPython board, using the code in the affected GitHub pull request. The test node will then run tests, + which live in the CircuitPython repository, on the connected board(s). These tests are also pulled from the + affected pull request, allowing tests to be updated with code changes. After tests are completed, the test node + sends the results to physaCI. +
+
+
+
+ + Here is an example of the workflow of a single instance: +
+ physaCI & RosiePi Event Sequence
What's up with the snail? Well, while brainstorming ideas for the backend of the service, - "physical CI" came to mind. Then, it was widdled down to "physaCI" [fizza-see-eye]. You know, cool internet + "physical CI" came to mind. Then, it was whittled down to "physaCI" [fizza-see-eye]. You know, cool internet word play. Then the time came for a logo. Coincidentally, Physa is the genus of a group of small...SNAILS! Couldn't have planned that...
diff --git a/templates/job_results_page.html b/templates/job_results_page.html index 6441c3a..9c8812f 100644 --- a/templates/job_results_page.html +++ b/templates/job_results_page.html @@ -2,7 +2,7 @@
{%- for result in node_results -%}
-
+

Tests Passed: {{ result['tests_passed'] }}

Tests Failed: {{ result['tests_failed'] }}

diff --git a/templates/physaci_results_page.html b/templates/physaci_results_page.html index 1751786..50b610a 100644 --- a/templates/physaci_results_page.html +++ b/templates/physaci_results_page.html @@ -13,10 +13,7 @@
- - - physaCI - + {% include 'header.html' -%}