Updating README with usage information #2
100
README.md
100
README.md
|
@ -1,3 +1,99 @@
|
||||||
# Action-carbon-emission-calculator-Demo
|
# Carbon Emission Calculator AllSpice Actions Demo
|
||||||
|
This is repository with an Altium-based design for demonstrating the "Carbon Emission Calculator" AllSpice Actions add-on.
|
||||||
|
|
||||||
A repository for demonstrating the "Carbon Emission Calculator" AllSpice Actions add-on.
|
This action uses the [generate-bom](https://hub.allspice.io/Actions/generate-bom) and [carbon-emission-calculator](https://hub.allspice.io/Actions/carbon-emission-calculator) Actions add-ons publically available in the [AllSpice Hub Actions](https://hub.allspice.io/Actions) organization.
|
||||||
|
|
||||||
|
As shown and explained below in the YML workflow file, the generate-bom add-on is used to generate a BOM using the py-allspice BOM generation utility function, and the carbon-emission-calculator add-on is used to obtain mock carbon emission data for the Archimajor 3D printer BOM components from a repository-based data source.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Step 1) Modify emission data ingestion in the add-on to your need:
|
||||||
|
|
||||||
|
The carbon-emission-calculator add-on uses a standalone data source CSV file with mock emissions figures for each component in the Archimajor 3D printer PCBA BOM. For your specific use, you will need to provide a data source and modify the data ingestion or query from source to match your needs:
|
||||||
|
|
||||||
|
#### For CSV-based data sources:
|
||||||
|
|
||||||
|
Replace your data source URL with the mock data URL in the add-on. The file format assumes part number as the 1st column, and the emission figure as the second column:
|
||||||
|
```
|
||||||
|
ALLSPICE_DEMO_CARBON_EMISSION_DATA_URL = "https://hub.allspice.io/AllSpice-Demos/Demo-Data-Source/raw/branch/main/Carbon-Emissions-Figures-Archimajor/archimajor-carbon-emissions-figures.csv"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### For Database-based data sources:
|
||||||
|
|
||||||
|
If your emissions data is stored in a database, you will need a service to present that data via a queryable API endpoint. A rudimentary example of querying an API endpoint for emissions data is shown below:
|
||||||
|
|
||||||
|
```
|
||||||
|
ALLSPICE_DEMO_CARBON_EMISSION_DATA_API_URL_BASE = "https://your.site"
|
||||||
|
ALLSPICE_DEMO_CARBON_EMISSION_DATA_PART_SEARCH_ENDPOINT = ALLSPICE_DEMO_CARBON_EMISSION_DATA_API_URL_BASE + "/get_emission_figure/"
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
def query_demo_carbon_emission_data_for_mfr_part_number(url):
|
||||||
|
# Post the request and get the response
|
||||||
|
response = requests.get(url)
|
||||||
|
# Populate the search result return value
|
||||||
|
part_search_response = response.text
|
||||||
|
# Return response status code and search result
|
||||||
|
return (response.status_code, part_search_response)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2) Add the following step to your actions:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# AllSpice running carbon emission calculator demo workflow
|
||||||
|
# Action triggers on push and issues
|
||||||
|
# Action runs "carbon-emission-calculator" action
|
||||||
|
# .allspice/workflows/Carbon-Emission-Calculator.yml
|
||||||
|
name: Generate Carbon Emission Figure for PCBA
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
issues:
|
||||||
|
types: [opened, closed, reopened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Generate_PCBA_Carbon_Emission_Figure:
|
||||||
|
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.3
|
||||||
|
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 JSON file mapping columns to the component attributes
|
||||||
|
# they are from. This file must be provided.
|
||||||
|
# Default: 'columns.json'
|
||||||
|
columns: .allspice/columns.json
|
||||||
|
# [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
|
||||||
|
|
||||||
|
# Upload BOM as artifact
|
||||||
|
- name: Upload file as artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: BOM.csv
|
||||||
|
path: bom.csv
|
||||||
|
|
||||||
|
- name: Generate Carbon Emission Figure for PCBA
|
||||||
|
uses: https://hub.allspice.io/Actions/carbon-emission-calculator.git@v1
|
||||||
|
with:
|
||||||
|
# The input BOM file for carbon emissions calculator
|
||||||
|
bom_file: bom.csv
|
||||||
|
```
|
||||||
|
|
||||||
|
Refer to the [generate-bom](https://hub.allspice.io/Actions/generate-bom) and [carbon-emission-calculator](https://hub.allspice.io/Actions/carbon-emission-calculator) add-on pages for usage and background on the add-ons used in this workflow demonstration.
|
||||||
|
|
Loading…
Reference in New Issue