Compare commits

...

109 Commits
V3 ... main

Author SHA1 Message Date
AllSpiceUser
17db85a2f0 Merge pull request 'Change Refdes delimiter to comma, delete old columns.json' () from dd/change-delimiter-to-comma into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/35
2024-07-25 15:46:04 +00:00
AllSpiceUser
6decdab895 Change delimiter to comma 2024-07-25 15:42:09 +00:00
AllSpiceUser
0126d397d2 Delete .allspice/columns.json 2024-07-25 15:41:43 +00:00
AllSpiceUser
49aa1f5ae5 Merge pull request 'Update BOM action version in demo' () from su/update-bom-ver into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/34
2024-07-25 15:21:55 +00:00
Shrikanth Upadhayaya
be993882ef
Add examples of sorting, grouping and filtering configs 2024-07-23 12:43:11 -04:00
shrikanthup
7201dc2762 Update .allspice/workflows/02-Running-common-Actions.yml 2024-07-23 16:35:13 +00:00
65357b285b Update readme.md 2024-07-19 13:43:32 -05:00
AllSpiceUser
ab03c255f4 Merge pull request 'dd/upgrade_bom_gen' () from dd/upgrade_bom_gen into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/33
2024-06-24 21:40:03 +00:00
4c3cbbd15b Add error handling 2024-06-24 16:37:52 -05:00
b8a9ad24ac Add error checking 2024-06-24 16:34:43 -05:00
b3dd9875db Debug 2024-06-24 16:33:04 -05:00
2d63d964fe Fix syntax 2024-06-24 16:25:23 -05:00
5e18571de8 Update columns.yml 2024-06-24 16:23:40 -05:00
c6e30001c5 Update columns.yml 2024-06-24 16:19:54 -05:00
109f15dd3d Update to generate-bom@v4 2024-06-24 16:17:07 -05:00
a325abba11 Add columns.yml 2024-06-24 16:16:39 -05:00
AllSpiceUser
3a2ed426cc Merge pull request 'Replace ${{github.var}} with $ {{allspice.var}}' () from dd/replace-action-workflow-variables into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/31
Reviewed-by: kyle <kyle@allspice.io>
Reviewed-by: jon <jon@noreply.staging.allspice.dev>
2024-06-06 14:28:08 +00:00
ff639a38d4 Fix typo s/allsice/allspice 2024-05-24 12:16:19 -05:00
cc8b11c1a6 Remove wip file 2024-05-24 12:14:04 -05:00
4b946d5452 Replace ${{github.var}} with $ {{allspice.var}} 2024-05-24 12:05:59 -05:00
2cb65481c9 Merge branch 'dd/add-workflows-02-03' 2024-05-22 18:00:41 -05:00
fa35d29be0 Remove whitespace 2024-05-22 15:10:04 -05:00
3d5caedd0e Remove debug workflow 2024-05-22 15:09:54 -05:00
a7b0ac0db5 Revert to v0.3, will work automagically 2024-05-22 14:57:36 -05:00
88a68f10dd Update to v0.3.1 2024-05-22 14:41:12 -05:00
9a8caddbd7 revert to 0.3 2024-05-22 14:39:19 -05:00
8760feba11 Replace tag with SHA 2024-05-22 14:38:26 -05:00
a134221521 Uprev to 0.3.1 2024-05-22 14:32:41 -05:00
47a5b99a9a Restore part number 2024-05-22 14:12:29 -05:00
9dca1dc396 Comment out part 2024-05-22 14:04:19 -05:00
a896708780 fix typo 2024-05-22 14:02:29 -05:00
f5aa7159be s/Part Number/Part 2024-05-22 14:01:48 -05:00
1dbe8159cc Change PART ID to Part Number 2024-05-22 13:58:47 -05:00
5083131daa Revert to example code 2024-05-22 13:57:22 -05:00
d46d9bbb5e Update to correct action 2024-05-22 13:54:15 -05:00
47ebafd6c8 Remove variant 2024-05-22 13:41:57 -05:00
8174e188c2 Update group-by to Part Number 2024-05-22 13:40:38 -05:00
100ccd7980 Update 02-Running-common-Actions.yml 2024-05-22 13:37:57 -05:00
dfbebb883f Move _part_id into "Part Number" value list 2024-05-22 13:36:37 -05:00
7c51dfabfa Remove variant='' 2024-05-22 13:33:59 -05:00
93f1edfa9c Upate inputs to match v0.3 2024-05-22 13:31:44 -05:00
e5ab266f02 Update generate-bom-altium@0.3 2024-05-22 13:28:15 -05:00
789d826ab1 Add Jons requested updates 2024-05-15 11:20:18 -05:00
AllSpiceUser
864c01880c Merge pull request 'fix: Fix requirements to specify the major versions of packages' () from jt/fix-requirements into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/29
2024-05-15 16:07:04 +00:00
00196122ea
fix: Fix requirements to specify the major versions of packages 2024-05-14 17:43:17 -04:00
9f9015d2e1 Return slash "/" 2024-05-14 15:45:56 -05:00
c24526d9e4 Remove ${{ github.workspace }} from path 2024-05-14 15:44:30 -05:00
50e070dff4 Remove extra slash / 2024-05-14 15:41:19 -05:00
763626eab8 Merge branch 'dd/add-workflows-02-03' of https://staging.allspice.dev/AllSpice-Demos/Actions-demo into dd/add-workflows-02-03 2024-05-14 14:19:28 -05:00
7c0d55acfb Add Mosfets.SchDoc back to repo 2024-05-14 14:19:20 -05:00
AllSpiceUser
395521b067 Merge branch 'main' into dd/add-workflows-02-03 2024-05-14 19:18:13 +00:00
f65fcec063 Update to PR22 25172dd086 2024-05-14 14:17:55 -05:00
a53e54d251 Add columns.json 2024-05-14 14:15:03 -05:00
AllSpiceUser
25172dd086 Merge pull request 'Update actions demos' () from develop into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/22
Reviewed-by: shrikanthup <shrikanthup@noreply.staging.allspice.dev>
Reviewed-by: kyle <kyle@allspice.io>
2024-05-10 22:45:28 +00:00
18f5f217f8 Rename back to columns.json 2024-05-10 17:24:33 -05:00
e4f4924642 Remove whitespace 2024-05-10 17:20:04 -05:00
7beb6e4c8a Improve demo readability 2024-05-10 17:19:18 -05:00
c9023bc9c9 Add dropped Mosfets.SchDoc 2024-05-10 17:09:05 -05:00
0b44254d5e Change to literal example to troubleshoot 2024-05-10 17:07:27 -05:00
e1f62e09a6 Add missing Part ID 2024-05-10 17:04:29 -05:00
7353a2fe71 Update action example to Generate BOM 0.2 2024-05-10 17:02:09 -05:00
AllSpiceUser
0bd293f68d Update .allspice/workflows/10-Debugging-workflows.yml 2024-05-10 20:55:06 +00:00
AllSpiceUser
a612634e6c Update workflow name 2024-05-10 20:54:42 +00:00
AllSpiceUser
a754bef1b8 Update workflow name 2024-05-10 20:54:05 +00:00
AllSpiceUser
de8ecc4f3d Delete .allspice/workflows/Generate-netlist.yml 2024-05-10 19:50:37 +00:00
AllSpiceUser
9215c795d6 Delete .allspice/workflows/🧸-Hello_world.yml 2024-05-10 19:50:31 +00:00
AllSpiceUser
c0371dd57e Delete .allspice/workflows/🧸-Hello_world.yml 2024-05-10 19:49:43 +00:00
AllSpiceUser
bf087abeac Delete .allspice/workflows/Generate-netlist.yml 2024-05-10 19:49:37 +00:00
AllSpiceUser
b7ef595301 Merge branch 'main' into dd/add-workflows-02-03 2024-05-10 19:15:21 +00:00
AllSpiceUser
dd276df3e3 Merge branch 'main' into develop 2024-05-10 19:14:49 +00:00
AllSpiceUser
df17d328fd Add documentation 2024-05-10 19:14:32 +00:00
82f3e94710 Chache order 2024-05-08 23:54:41 -05:00
0673be95a3 Add logging 2024-05-08 23:49:44 -05:00
c6dc417ea4 Test writing to log 2024-05-08 23:41:22 -05:00
ef65996bab Delete Workflows-with-syntax-errors-dont-run.yml 2024-05-08 23:34:17 -05:00
73542ef0f6 Fix example 2024-05-08 23:31:38 -05:00
254f9a3769 Fix network test 2024-05-08 23:28:09 -05:00
68ea7d1c14 Add failing example 2024-05-08 23:09:22 -05:00
3da5a148ec Short string 2024-05-08 23:09:05 -05:00
e08106a7c4 Fix syntax 2024-05-08 23:06:01 -05:00
7bb42dd820 Fix syntax 2024-05-08 23:03:32 -05:00
538b7eae33 Create 10-Debugging-workflows.yml 2024-05-08 23:02:03 -05:00
fb2c26e43e Improve educational communication 2024-05-08 22:45:07 -05:00
fa74d82458 Improve readability 2024-05-08 22:44:38 -05:00
a00a6058c0 Add variable print 2024-05-08 22:23:13 -05:00
31736d9904 Create 04-Secrets-variables-keys.yml 2024-05-08 22:20:20 -05:00
90540110bd Remove status 2024-05-08 21:29:09 -05:00
a6785139df Fix folder name 2024-05-08 21:26:29 -05:00
93e5837ae3 Delete 04-Generate-netlist.yml 2024-05-08 21:24:50 -05:00
926d9d6030 Combine workflows 03-04 into 03, rename 05 to 04-Generate-netlist.yml 2024-05-08 21:23:50 -05:00
38ea775721 Add link https://learn.allspice.io/docs/actions-triggers 2024-05-08 19:36:44 -05:00
dcda80dfe6 Remove python scripts for this release 2024-05-08 19:31:19 -05:00
a3448bb5b7 Remove files 3-5. Added requested changes
Remove whitespace
Rename files for clarity
Add comments for column mapping
2024-05-08 19:27:58 -05:00
887a428c39 Generalize server URL to current server 2024-05-06 19:44:50 -05:00
a35da0e7b3 Add requested changes 2024-05-06 19:42:08 -05:00
6289021151 Update demo workflows with requested changes 2024-05-06 17:37:28 -05:00
96f32a2c93 Upload state of the art 2024-05-06 15:13:14 -05:00
d7f97e1d4b Refresh from hub 2024-05-03 13:33:35 -05:00
AllSpiceUser
f096f11ae9 Merge pull request 'Add actions workflow file' () from develop into main
Merge to enable actions
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/20
2024-05-01 17:08:02 +00:00
93010bb417 Add .allspice/workflows/generate_bom.yml 2024-05-01 12:07:24 -05:00
AllSpiceUser
47b36a1508 Merge pull request 'Fix endstop non-detects, Fix SERCOM' () from develop into main
Reviewed-on: https://staging.allspice.dev/AllSpice-Demos/Actions-demo/pulls/11
Reviewed-by: AllSpiceUser <allspiceuser@noreply.staging.allspice.dev>
2024-05-01 17:03:54 +00:00
de889b6a8f Removed channel 2024-02-05 12:43:27 -06:00
Daniel Lindmark
e148bd85ae Delete images/firmware.jp 2024-01-04 05:30:33 +00:00
Daniel Lindmark
d2a9de2986 Add links to library and fw 2024-01-04 05:29:39 +00:00
Daniel Lindmark
38c2347171 Add links to library and fw 2024-01-04 05:29:01 +00:00
Daniel Lindmark
c28e88ee1f Add smaller image 2024-01-04 04:59:06 +00:00
Daniel Lindmark
4e6c4c64b4 Add image for FW 2024-01-04 04:53:47 +00:00
Daniel Lindmark
d76eaf7269 Merge pull request 'V2: Add input protection and improve data integrity' () from develop into main
Reviewed-on: 
2024-01-02 03:25:16 +00:00
Daniel Lindmark
3b4f205314 Merge pull request 'Add V1 files to repo' () from develop into main
Reviewed-on: 
2024-01-02 02:45:39 +00:00
14 changed files with 504 additions and 33 deletions

21
.allspice/columns.yml Normal file
View File

@ -0,0 +1,21 @@
columns:
- name: "Manufacturer"
part_attributes:
- "Manufacturer"
- "MANUFACTURER"
sort: "asc"
- name: "Part Number"
part_attributes:
- "PART"
- "MANUFACTURER #"
- "_part_id"
remove_rows_matching: "TP|MTG|FID"
- name: "Designator"
part_attributes: "Designator"
grouped_values_separator: ", "
grouped_values_sort: "asc"
- name: "Description"
part_attributes:
- "PART DESCRIPTION"
- "_description"

View File

@ -0,0 +1,110 @@
#! /usr/bin/env python3
# Generate a Netlist from a PcbDoc file.
# For more information, read the README file in this directory.
import argparse
import os
import sys
from contextlib import ExitStack
from allspice import AllSpice
from allspice.utils.netlist_generation import generate_netlist
if __name__ == "__main__":
print("Hello World")
# Parse command line arguments. If you're writing a special purpose script,
# you can hardcode these values instead of using command line arguments.
parser = argparse.ArgumentParser(
prog="generate_pcb_netlist", description="Generate a netlist from a PCB file."
)
parser.add_argument("repository", help="The repo containing the project")
parser.add_argument(
"pcb_file",
help="The path to the PCB file in the source repo.",
)
parser.add_argument(
"--source_ref",
help="The git reference the netlist should be generated for (eg. branch name, tag name, commit SHA). Defaults to main.",
default="main",
)
parser.add_argument(
"--allspice_hub_url",
help="The URL of your AllSpice Hub instance. Defaults to https://hub.allspice.io.",
)
parser.add_argument(
"--output_file",
help="The path to the output file. If absent, the output will direct to the command line.",
)
args = parser.parse_args()
# Use Environment Variables to store your auth token. This keeps your token
# secure when sharing code.
auth_token = os.environ.get("ALLSPICE_AUTH_TOKEN")
if auth_token is None:
print("Please set the environment variable ALLSPICE_AUTH_TOKEN")
exit(1)
if args.allspice_hub_url is None:
allspice = AllSpice(token_text=auth_token)
else:
allspice = AllSpice(
token_text=auth_token, allspice_hub_url=args.allspice_hub_url
)
try:
# Test connection and key
print("AllSpice Version: " + allspice.get_version())
# Test private API call
print("API-Token belongs to user: " + allspice.get_user().username)
except Exception as e:
print(f"Could not connect to AllSpice Hub: {e}")
exit(1)
repo_owner, repo_name = args.repository.split("/")
try:
print(f"repo_owner={repo_owner}, repo_name={repo_name}")
repository = allspice.get_repository(repo_owner, repo_name)
except Exception as e:
print(f"Could not find repository {args.repository}: {e}")
exit(1)
pcb_file = args.pcb_file
print("Generating PCB Netlist...🏃", file=sys.stderr)
netlist_rows = generate_netlist(
allspice,
repository,
pcb_file,
args.source_ref,
)
with ExitStack() as stack:
if args.output_file is not None:
writer = stack.enter_context(open(args.output_file, "w"))
else:
writer = sys.stdout
nets = list(netlist_rows.keys())
# It's helpful to sort here to generate repeatable netlist files
nets.sort()
# You can change formatting here
for net in nets:
writer.write(net + "\n")
pins_on_net = netlist_rows[net]
try:
# Convert to list if it's not already, and then sort
if not isinstance(pins_on_net, list):
pins_on_net = list(pins_on_net)
pins_on_net.sort()
except Exception as e:
print(f"Error sorting pins on net {net}: {e}", file=sys.stderr)
writer.write(" " + " ".join(pins_on_net) + "\n")
print("Generated PCB netlist.", file=sys.stderr)

View File

@ -0,0 +1 @@
print("Hello World!")

View File

@ -0,0 +1,57 @@
# HelloWorld.py
# If you're new to scripting, this is a great place to start.
# Hello World starts you out easy with some simple server requests.
# This will help you troubleshoot your connection and show you the basics of making an api request
#
# For more information read our README.md
from allspice import AllSpice
import argparse, sys
print("Starting Test")
parser = argparse.ArgumentParser(
prog="Allspice_API_BIST", description="Test connection and execution of API actions"
)
parser.add_argument(
"--allspice_hub_url",
help="The URL of your AllSpice Hub instance. Defaults to https://hub.allspice.io.",
)
parser.add_argument(
"--allspice_token",
help="Your AllSpice application token. Generate a token: https://hub.allspice.io/user/settings/applications",
)
print("Parsing args")
args = parser.parse_args()
auth_token = args.allspice_token
if auth_token is None:
print("Please supply a token with --allspice_token <your_token> Generate a token: https://hub.allspice.io/user/settings/applications")
sys.exit(1)
print(f"Auth token {auth_token}")
if args.allspice_hub_url is None:
allspice = AllSpice(token_text="https://hub.allspice.io")
else:
try:
allspice = AllSpice(
token_text=auth_token, allspice_hub_url=args.allspice_hub_url
)
except Exception as e:
print("Error")
sys.exit(1)
print("Finish making connection")
# Test connection and key
print("AllSpice Version: " + allspice.get_version())
# Test private API call
print("API-Token belongs to user: " + allspice.get_user().username)
print("End test")

View File

@ -0,0 +1,2 @@
py-allspice~=3.0
rich~=13.0

View File

@ -0,0 +1,14 @@
name: Workflow-syntax-minimal
on:
push:
issues:
# Trigger on issue open, close, or reopen
types: [opened, closed, reopened]
jobs:
Job-Hello-World:
runs-on: ubuntu-latest
steps:
- name: "Print Hello World 🔎"
run: echo "Hello World"

View File

@ -0,0 +1,57 @@
# This is a basic workflow to help you get started with Actions
# Lines beginning with a `#` are comments, and only intended to help reviewers understand the script
# Actions documentation: https://learn.allspice.io/docs/actions-cicd
# This file is written in YAML syntax, to learn more about YAML visit https://learn.allspice.io/docs/yaml
# Workflow name
name: Workflow-syntax-commented
# Workflow triggers on
# To learn more about triggers, visit https://learn.allspice.io/docs/actions-triggers
on:
# Workflow is triggered if any of the following events occur
# i.e. Logical OR of triggers, i.e. trigger on push or issues
# Trigger on push
push:
# Trigger on issues
issues:
# Trigger on issue open, close, or reopen
types: [opened, closed, reopened]
# Workflow jobs
# Jobs run in parallel by default
# To run jobs in sequence, create multiple steps in a job
jobs:
# Job name
Job-Hello-World:
# Set up server container using Ubuntu operating system (Debian based Linux distribution)
# To learn more about Ubuntu, visit https://ubuntu.com/
runs-on: ubuntu-latest
# Job steps
# Steps run in sequence on the runner machine
# To make steps run in parallel, create multiple jobs
steps:
# Job steps start with - name: "Step name"
- name: "Print Hello World 🔎"
# run keyword specifies the shell command to run
# The shell command is a simple echo command to print "Hello World"
# The command is run in the runner machine
# To learn more about shell commands, visit https://www.shellscript.sh/
run: echo "Hello World"
- name: "Multiline shell command 🔎"
# The shell command is a simple echo command to print two lines of text
# The | pipe character is used to specify a multiline command
run: |
echo "This is the first line"
echo "This is the second line"

View File

@ -0,0 +1,47 @@
# AllSpice Running common Actions workflow
# Action triggers on push and issues
# Action runs "generate-bom-altium" action
# .allspice/workflows/generate_bom.yml
name: Generate BOM
on:
push:
issues:
types: [opened, closed, reopened]
jobs:
Generate_BOM:
runs-on: ubuntu-latest
steps:
# Checkout is only needed if columns.json is committed in your Altium project repo.
- name: Checkout
uses: actions/checkout@v3
- name: Generate BOM
uses: https://hub.allspice.io/Actions/generate-bom@v0.5
with:
# The path to the project file in your repo (.PrjPcb for Altium, .DSN for OrCad).
source_path: Archimajor.PrjPcb
# [optional] A path to a YAML file mapping columns to the component attributes
# This file must be provided.
# Default: 'columns.json'
columns: .allspice/columns.yml
# [optional] The path to the output file that will be generated.
# Default: 'bom.csv'
output_file_name: bom.csv
# [optional] A comma-separated list of columns to group the BOM by. If empty
# or not present, the BOM will be flat.
# Default: ''
group_by: 'Part Number'
# [optional] The variant of the project to generate the BOM for. If empty
# or not present, the BOM will be generated for the default variant.
# Default: ''
variant: ''
# Print bom.csv to terminal
- name: Show BOM
run: cat bom.csv
- name: Upload file as artifact
uses: actions/upload-artifact@v3
with:
name: BOM.csv
path: bom.csv

View File

@ -0,0 +1,54 @@
# Python-py-allspice demo repository
# This workflow demonstrates how to use Python and py-allspice to interact with the AllSpice API
# AllSpice Actions documentation: https://learn.allspice.io/docs/actions-cicd
name: Python-py-allspice
on:
push:
issues:
types: [opened, closed, reopened]
jobs:
py-allspice test:
runs-on: ubuntu-latest
steps:
# Check out repository code
- name: "[📚->🖥️] Check out repository code"
uses: actions/checkout@v3
- name: "[🔎->📂] List files in repo 🔎"
run: |
ls -la ${{ allspice.workspace }}
# Installs python requirements from the requirements.txt file
- name: "[🤼->🖥️] Install python requirements"
run: pip install -r .allspice/utils/requirements.txt
# Call a python script from the .allspice/utils directory
- name: "[🏃->🐍] Run .allspice/utils/hello-world.py 🔎"
run: python .allspice/utils/hello-world.py
# Run the py-allspice self-test script, this will ping the server and verify the API is working
# Parameters: ${allspice.server_url} and ${allspice.token} are automatic Workflow variables and are used to authenticate the AllSpice API
- name: "[🔑->🕸️] Test AllSpice API with py-allspice 🔎"
run: python .allspice/utils/py-allspice-BIST.py --allspice_hub_url ${{ allspice.server_url }} --allspice_token ${{ allspice.token }}
# Generate a netlist from Altium .PcbDoc file
# Run the generate_netlist.py script from the .allspice/utils directory
- name: Generate Netlist
run: |
echo -e "repo ${{ allspice.repository }}"
ALLSPICE_AUTH_TOKEN=${{ allspice.token }} python .allspice/utils/generate_netlist.py "${{ allspice.repository }}" "Archimajor.PcbDoc" --allspice_hub_url "${{ allspice.server_url }}" --output_file Archimajor.pcbdoc.netlist.txt
# Print the netlist file to the terminal
- name: Show Netlist 🔎
run: cat Archimajor.pcbdoc.netlist.txt
# Archive the netlist file as an artifact file
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: Archimajor.PcbDoc.netlist.txt
path: Archimajor.pcbdoc.netlist.txt

View File

@ -0,0 +1,36 @@
# Secrets, Variables, and Keys demo
# This workflow demonstrates how to use secrets, variables, and keys in the workflow
# AllSpice Actions documentation: https://learn.allspice.io/docs/actions-cicd
name: Secrets-Variables-Keys-Demo
on:
push:
issues:
types: [opened, closed, reopened]
jobs:
py-allspice test:
runs-on: ubuntu-latest
steps:
# Check out repository code
- name: "[📚->🖥️] Check out repository code"
uses: actions/checkout@v3
# Print repository action variable VARIABLE_NAME and value
- name: Print repository Action variable 🔎
run: |
echo "Repository variable VARIABLE_NAME = ${{ vars.VARIABLE_NAME }}"
echo "Repository variables are stored in ${{ allspice.server_url }}/${{ allspice.repository }}/settings/actions/variables"
- name: Use Secret 🔎
# Store the secret in an environment variable YOUR_SECRET
env:
ENV_SECRET: ${{ secrets.YOUR_SECRET }}
# Demonstrate how to use secrets in the workflow
run: |
echo "Secrets are stored in ${{ allspice.server_url }}/${{ allspice.repository }}"/settings/actions/secrets
echo "Secrets are only available to the repository admins and the workflow"
echo "Store API Tokens in secrets and use them in the workflow without exposing them"
echo "Secrets are not printed to the terminal for security reasons and will be replaced with ***"
echo "Using secret from /settings/actions/secrets YOUR_SECRET=${{ secrets.YOUR_SECRET }}"
echo "Using secret from stored envrironmental variable ENV_SECRET=$YOUR_SECRET"

BIN
images/enable_actions.png Normal file

Binary file not shown.

After

(image error) Size: 43 KiB

BIN
images/workflow-demo.png Normal file

Binary file not shown.

After

(image error) Size: 271 KiB

BIN
images/workflow-list.png Normal file

Binary file not shown.

After

(image error) Size: 231 KiB

138
readme.md
View File

@ -1,42 +1,114 @@
# Archimajor
## Actions demo repo
Welcome to the Actions demo repo.
<img align="left" width="300" height="200" src="./.allspice/PCB.PNG">
This repo will help you get started quickly with actions.
## Summary
This repo is part of the [Actions quickstart guide](https://learn.allspice.io/docs/allspice-ci-cd-actions-quickstart)
3D printer motherboard, designed by [Ultimachine](https://ultimachine.com/). Features include:
### Quickstart overview
- **5x integrated 256 microstep motor drivers**
- **6x PWM Mosfet outputs**
- **4x thermistor inputs**
- **SPI (Serial Peripheral Interface)**
- ** Removed infinite loop on self-calibration.
- [ ] Sign up for Actions by talking to one of our [friendly engineers](https://allspice.io/demo)
- [ ] Create a new repo using this repo as a template, or migrate this repo
- [ ] Enable actions by visiting your repository->:wrench:Settings, and clicking [X] `Enable Repository Actions`
---
- <img height="150" src="./images/enable_actions.png">
## Specifications
### General Specifications
**Input Power Supply**: 12V - 24V DC, 16A+
**Operating Temperature Range (est.)**: 0dC ~ 70dC
## Firmware
[Source](https://github.com/ultimachine/Marlin4due/tree/Archim2)
[Binary](https://github.com/MarlinFirmware/Marlin/archive/bugfix-2.0.x.zip)
## Bill of Materials
[Archimajor.csv](./Archimajor.csv)
## Note
Changed heat bed fuse holder to yellow to differentiate channels.
- [ ] Trigger Actions workflows by pushing files to the repo, or by creating/opening/closing an issue
- [ ] Visit the Actions tab to view the workflows
- Click on the workflow you would like to view
- <img height="400" src="./images/workflow-list.png">
- Click on individual jobs to see their output
- <img height="400" src="./images/workflow-demo.png">
## Disclaimer
## Actions background
*NOTE: This does not represent actual data from the Rambo/Archimajor PCBA
This section introduces some high-level concepts and definitions of Actions. To learn more, visit the main [Actions documentation](https://learn.allspice.io/docs/actions-cicd)
### Continuous Integration (CI)
CI is part of development operations (DevOps).
CI is the practice of **automating** the integration of **design changes** from multiple contributors into a single project.
### Actions
An action is the basic reusable block of CI. It's just a program or series of programs that you call from your workflow `.allspice/workflows/your_workflow.yml`
Actions allow you to `automate repetitive and error-prone processes` to let the engineers focus on the creative design challenges.
Actions is just an easy way to say automation program.
### Actions trigger automatically
Automation programs are `triggered` by standard actions like `uploading files to version control`, starting or `finishing a design review`.
Triggers are defined in your workflow files `.allspice/workflows/your_workflow.yml`
Engineering teams gain rapid improvements on their process by relying on Actions to automate instead of manual operations.
To learn more, visit https://learn.allspice.io/docs/actions-triggers
## **Actions help your design team**
- Process BOM/Assembly
- Availability checks
- Lifecycle checks (PLM)
- COGS (ERP)
- CM BOM Diff Report
- Extended quote/forecasting
- PCB cost/schedule options
- Quotes with multiple quantities
- Date extended quantity is available
- Process Schematics
- Verify symbols
- Reference designators
- Symbol attributes
- MFG/MPN/Value/etc
- Netlist
- Static analysis
- Power/GND misconnects
- Voltage level checks between components
- Process PCBAs
- Verify footprints
- Verify design rules match (DRC is no good if the rules are wrong)
- Create trace report (Current/Power/Width)
- Generate stack-up documentation
- Generate documentation (Sch/PCB Design Review/Release notes/Fab files)
- Regulate releases
- File pattern match
- Flag missing files
- Generate report
- Connect to any public API
- PLM/ERP (Cofactr/PTC)
- Distributors (Digikey/Mouser/Newark/Octopart)
- Task management (Jira)
- Create Read Update Delete (CRUD) cloud “office” documents
- MS365 (Excel/Word/Powerpoint)
- Google docs (Sheets/Docs/Slides)
- Network sync (Dropbox/MS365/iCloud)
Actions can seem a bit abstract, but it's really just code running on a computer
## Workflows
Workflows are the scaffolding of your automation. They are the code that loads the automation code. Workflows are easy to read and write `yaml` files that define the following:
- Load software container
- Ubuntu LTS 2024 (Debian flavored Linux distro)
- Load dependencies
- Software libraries
- Design Files
- API tools
- Secrets/tokens/keys
- Run programs
- Actions - Pre-built no-code automation programs
- Python - Programs can be written in python and access our AllSpice.io API via our py-allspice python module.
- C/C++, use the same language as firmware development
- Any programming language that can run on Debian/Ubuntu Linux
- Extend existing automation
- Workflows can be broken into modules that can be reused and extended.
## Learn more
To learn more, visit our [actions documentation](https://learn.allspice.io/docs/actions-cicd).