-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added CI pipeline Fixed trailing whitespaces of MFN and PN labels Fixed ERC/DRC errors
- Loading branch information
1 parent
11e7ff1
commit 33e0ca1
Showing
34 changed files
with
36,873 additions
and
96,855 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
# Workflow files stored in the | ||
# default location of `.github/workflows` | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
commit-message: | ||
# Prefix all commit messages with "[gha] " | ||
prefix: "[gha] " | ||
|
||
- package-ecosystem: "gitsubmodule" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
name: "Build manufacturing files" | ||
|
||
# Controls when the action will run. Triggers the workflow on push or pull request | ||
# events but only for the master branch | ||
on: | ||
push: | ||
branches: | ||
- "**" | ||
paths: | ||
- '**.kicad_sch' | ||
- '**.kicad_pcb' | ||
- '.github/workflows/ci.yml' | ||
- 'config.kibot.yaml' | ||
# Ignore the push event when creating tags | ||
tags-ignore: | ||
- 'v?[0-9]+.[0-9]+.[0-9]+' | ||
release: | ||
types: | ||
- published | ||
|
||
env: | ||
SCHEMATIC_FILE: phase-frequency_detector.kicad_sch | ||
PCB_FILE: phase-frequency_detector.kicad_pcb | ||
KIBOT_CONFIG: config.kibot.yaml | ||
|
||
jobs: | ||
tests: | ||
name: Run tests | ||
runs-on: ubuntu-latest | ||
outputs: | ||
revision: ${{ steps.extract_sch_revision.outputs.value }} | ||
basename: ${{ steps.repo-basename.outputs.value }} | ||
|
||
steps: | ||
- name: Download repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Parse repository name | ||
id: repo-basename | ||
run: | | ||
echo "value=$(basename ${{ github.repository }})" >> $GITHUB_OUTPUT | ||
shell: bash | ||
|
||
- name: Extract schematic revision | ||
id: extract_sch_revision | ||
run: | | ||
echo "value=$(perl -0777 -ne "print /\(title_block.+\(rev \"(.+?)\"\)/sg" ${{ env.SCHEMATIC_FILE }})" >>${GITHUB_OUTPUT} | ||
shell: bash | ||
|
||
- name: Extract PCB revision | ||
id: extract_pcb_revision | ||
run: | | ||
echo "value=$(perl -0777 -ne "print /\(title_block.+\(rev \"(.+?)\"\)/sg" ${{ env.PCB_FILE }})" >>${GITHUB_OUTPUT} | ||
shell: bash | ||
|
||
- name: Test if the revision number was extracted | ||
if: steps.extract_sch_revision.outputs.value == '' | ||
run: | | ||
echo "::error::Failed to extract revision number from schematic file: ${{ env.SCHEMATIC_FILE }}" | ||
exit 1 | ||
shell: bash | ||
|
||
- name: Test schematic revision == pcb revision | ||
if: steps.extract_sch_revision.outputs.value != steps.extract_pcb_revision.outputs.value | ||
run: | | ||
echo "::error::Revision number of the schematic (${{ steps.extract_sch_revision.outputs.value }}) does not match PCB (${{ steps.extract_pcb_revision.outputs.value }}) revision." | ||
exit 1 | ||
shell: bash | ||
|
||
ERC: | ||
name: Run ERC | ||
runs-on: ubuntu-latest | ||
needs: tests | ||
|
||
steps: | ||
- name: Download repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- name: Run ERC | ||
uses: INTI-CMNB/KiBot@v2_k7 | ||
with: | ||
config: ${{ env.KIBOT_CONFIG }} | ||
schema: ${{ env.SCHEMATIC_FILE }} | ||
dir: generated | ||
skip: run_drc | ||
targets: __NONE__ # Only run preflights | ||
|
||
- name: Retrieve results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ERC_Output | ||
path: generated | ||
|
||
DRC: | ||
name: Run DRC | ||
runs-on: ubuntu-latest | ||
needs: ERC | ||
|
||
steps: | ||
- name: Download repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- name: Run DRC | ||
uses: INTI-CMNB/KiBot@v2_k7 | ||
with: | ||
config: ${{ env.KIBOT_CONFIG }} | ||
board: ${{ env.PCB_FILE }} | ||
dir: generated | ||
skip: run_erc | ||
targets: __NONE__ # Only run preflights | ||
|
||
- name: Retrieve results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: DRC_Output | ||
path: generated | ||
|
||
fabrication_output: | ||
name: 'Produce fabrication outputs' | ||
runs-on: ubuntu-latest | ||
needs: [ERC, DRC] | ||
strategy: | ||
matrix: | ||
variant: [ 'default' ] | ||
steps: | ||
- name: Download repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- uses: INTI-CMNB/KiBot@v2_k7 | ||
with: | ||
config: ${{ env.KIBOT_CONFIG }} | ||
schema: ${{ env.SCHEMATIC_FILE }} | ||
board: ${{ env.PCB_FILE }} | ||
skip: run_erc,run_drc | ||
variant: ${{ matrix.variant }} | ||
verbose: 0 # use 3 for debugging | ||
|
||
- name: Upload bill of materials files as artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: bom | ||
path: bom_files_compressed | ||
|
||
- name: Upload schematic files as artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: schematics | ||
path: schematics | ||
|
||
- name: Upload schematic files as artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: gerber_files | ||
path: gerber_files_compressed | ||
|
||
release: | ||
name: 'Upload manufacturing files to release' | ||
runs-on: ubuntu-latest | ||
needs: [tests, fabrication_output] | ||
if: github.event.action == 'published' | ||
strategy: | ||
matrix: | ||
variant: [ 'default' ] | ||
steps: | ||
- name: Download manufacturing files artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
path: ./manufacturing_files | ||
|
||
- name: Display structure of downloaded files | ||
run: ls -R | ||
working-directory: ./manufacturing_files | ||
shell: bash | ||
|
||
- name: Append BOM (bill of materials) as asset | ||
if: github.event.action == 'published' | ||
run: | | ||
mv "./manufacturing_files/bom/bom_(${{ matrix.variant }}).zip" ${{ needs.tests.outputs.basename }}_bom_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.zip | ||
gh release upload ${{ github.ref_name }} ${{ needs.tests.outputs.basename }}_bom_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.zip#"Bill of materials for the ${{ matrix.variant }} variant (zip)" --repo ${{ github.repository }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
shell: bash | ||
|
||
- name: Append schematics as asset | ||
if: github.event.action == 'published' | ||
run: | | ||
mv "./manufacturing_files/schematics/schematics_(${{ matrix.variant }}).pdf" ${{ needs.tests.outputs.basename }}_schematics_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.pdf | ||
gh release upload ${{ github.ref_name }} ${{ needs.tests.outputs.basename }}_schematics_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.pdf#"Schematics for the ${{ matrix.variant }} variant (pdf)" --repo ${{ github.repository }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
shell: bash | ||
|
||
- name: Append position files as asset | ||
if: github.event.action == 'published' | ||
run: | | ||
mv "./manufacturing_files/gerber_files/pos_(${{ matrix.variant }}).zip" ${{ needs.tests.outputs.basename }}_position_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.zip | ||
gh release upload ${{ github.ref_name }} ${{ needs.tests.outputs.basename }}_position_${{ needs.tests.outputs.revision }}_${{ matrix.variant }}.zip#"Pick & Place position files for the ${{ matrix.variant }} variant (zip)" --repo ${{ github.repository }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
shell: bash | ||
|
||
- name: Append Gerber files as asset | ||
if: github.event.action == 'published' && matrix.variant == 'default' | ||
run: | | ||
mv "./manufacturing_files/gerber_files/gerbers.zip" ${{ needs.tests.outputs.basename }}_gerber_${{ needs.tests.outputs.revision }}_all.zip | ||
gh release upload ${{ github.ref_name }} ${{ needs.tests.outputs.basename }}_gerber_${{ needs.tests.outputs.revision }}_all.zip#"Gerber files for all variants (zip)" --repo ${{ github.repository }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.