Skip to content

COmpendium of RElations – Modulo 6 #327

COmpendium of RElations – Modulo 6

COmpendium of RElations – Modulo 6 #327

Workflow file for this run

# 💎 Main Workflow: eQuantum MEC30
name: COmpendium of RElations – Modulo 6
#
# The semantics for running shell commands in GitHub actions is non-obvious. Please read
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
# before modifying this file.
#
# GitHub Actions files can be difficult to modify with confidence, because testing changes
# often requires pushing to a branch and running CI remotely.
#
# To make this process easier, consider the following:
#
# 1) Use Visual Studio Code with the GitHub Actions Extension (github.vscode-github-actions).
# This allows you to check the validity of your action schema and syntax without pushing.
# 2) Use https://github.com/nektos/act to run your CI steps locally. It will only work with
# steps run on Linux platforms, as `act` is implemented with Docker containers.
#
# For more information on these settings, see https://www.tensorflow.org/quantum/design.
#
on:
#push:
workflow_run:
types: [completed]
workflows: ["pages-build-deployment"]
# 🕸️ Allow concurrent
concurrency:
group: "pages"
cancel-in-progress: true
# ⚠️ Set token permissions
permissions: write-all
# 🕸️ Global Environment
env:
TARGET_REPOSITORY: ${{ vars.TARGET_REPOSITORY }}
jobs:
lexering:
strategy:
max-parallel: 1
fail-fast: true
matrix:
config:
- { os: ubuntu-latest, id: 1 }
- { os: macos-latest, id: 2 }
env:
ID: ${{ matrix.config.id }}
# 🔧 Commutation relations
runs-on: ${{ matrix.config.os }}
if: ${{ github.event_name == 'push' ||
github.event.workflow_run.conclusion == 'success' }}
steps:
- name: 📂 Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.ACCESS_TOKEN }}
ref: ${{ env.ID != 1 && 'gh-source' || '' }}
repository: ${{ env.ID != 1 && env.TARGET_REPOSITORY || '' }}
- name: ⚙️ Build Maps
uses: eq19/maps@v2
id: build-parser
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
docker_hub_token: ${{ secrets.DOCKER_HUB_TOKEN }}
docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }}
initiate_pauli_sum: ${{ toJSON(steps.set-lexering.outputs) }}
- name: 🪂 Feed Mapping
uses: eq19/feed@v3
id: feed-mapping
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
docker_hub_token: ${{ secrets.DOCKER_HUB_TOKEN }}
docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }}
initiate_pauli_sum: ${{ toJSON(steps.build-parser.outputs) }}
- name: 🏃‍♂️ Lexering Runner
uses: eq19/lexer@v3
id: set-lexering
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
docker_hub_token: ${{ secrets.DOCKER_HUB_TOKEN }}
docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }}
initiate_pauli_sum: ${{ toJSON(steps.feed-mapping.outputs) }}
- name: 📋 Generate Outputs
id: gen_outputs
shell: bash
run: |
id=${{ matrix.config.id }}
output=${{ matrix.config.id == 1 &&
steps.feed-mapping.outputs.addition ||
steps.set-lexering.outputs.multiplication }}
echo "output_${id}=${output}" >> "${GITHUB_OUTPUT}"
outputs:
# ♻️ Simulate Gell-Mann Matrices
target: ${{ steps.gen_outputs.outputs.output_1 }}
address: ${{ steps.gen_outputs.outputs.output_2 }}
function: ${{ steps.set-lexering.outputs.function }}
parsering:
needs: lexering
continue-on-error: false
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- { os: self-hosted, id: 3 }
- { os: windows-latest, id: 4 }
# 💢 Completeness relations
max-parallel: ${{ contains(needs.*.result, 'success') && 1 || 2 }}
fail-fast: ${{ contains(needs.*.result, 'success') && false || true }}
env:
IP_ADDRESS: '${{ needs.lexering.outputs.address }}'
PASS: ${{ contains(needs.*.result, 'success') && true || false }}
# ✔️ Completeness status
if: ${{ (always() && contains(needs.*.result, 'success')) ||
(failure() && contains(needs.*.result, 'failure')) }}
steps:
- name: 📂 Checkout
uses: actions/checkout@v4
with:
ref: 'gh-source'
submodules: recursive
token: ${{ secrets.ACCESS_TOKEN }}
repository: ${{ env.TARGET_REPOSITORY }}
- name: 🚀 Setup Parser
if: ${{ env.PASS == 'true' }}
uses: eq19/parser@v2
id: set-parser
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
pauli_sum: ${{ needs.lexering.outputs.function }}
failure_status: ${{ contains(steps.*.conclusion, 'failure') ||
(matrix.config.id == 4 && contains(needs.*.result, 'failure')) }}
- name: 🌀 Evaluate Syntax
if: ${{ env.PASS == 'true' }}
uses: eq19/syntax@v2
id: eval-syntax
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
pauli_sum: ${{ toJSON(steps.set-parser.outputs) }}
failure_status: ${{ contains(steps.*.conclusion, 'failure') ||
(matrix.config.id == 4 && contains(needs.*.result, 'failure')) }}
- name: ⚧️ Set Grammar Rules
uses: eq19/grammar@v1
id: grammar-rules
if: always()
with:
id: ${{ matrix.config.id }}
token: ${{ secrets.ACCESS_TOKEN }}
credentials: ${{ secrets.GCP_CREDENTIALS }}
pauli_sum: ${{ toJSON(steps.eval-syntax.outputs) }}
failure_status: ${{ contains(steps.*.conclusion, 'failure') ||
(matrix.config.id == 4 && contains(needs.*.result, 'failure')) }}