electronics.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. name: Export Electronics
  2. on:
  3. push:
  4. paths:
  5. - 'electronics'
  6. - 'util'
  7. - 'scripts'
  8. - '.github/workflows/electronics.yml'
  9. pull_request:
  10. paths:
  11. - 'electronics'
  12. - 'util'
  13. - 'scripts'
  14. - '.github/workflows/electronics.yml'
  15. jobs:
  16. export-electronics:
  17. name: Export Electronics
  18. runs-on: ubuntu-22.04
  19. steps:
  20. - name: Checkout code
  21. uses: actions/checkout@v2
  22. - name: Set up outputs directory
  23. run: mkdir -p electronics/build/outputs
  24. - name: Install dependencies
  25. run: ./electronics/scripts/dependencies.sh
  26. - name: Export JLCPCB fabrication files [view_base]
  27. run: |
  28. ./electronics/scripts/export_jlcpcb.py --release-prefix releases/view_base/ electronics/view_base/view_base.kicad_pcb
  29. cp -r electronics/build/view_base-jlc electronics/build/outputs
  30. - name: Export PCB overview PDF [view_base]
  31. run: |
  32. ./electronics/scripts/generate_pdf.py --release-prefix releases/view_base/ electronics/view_base/view_base.kicad_pcb
  33. cp electronics/build/view_base-pcb-packet.pdf electronics/build/outputs
  34. env:
  35. PYTHONUNBUFFERED: 1
  36. - name: Export JLCPCB fabrication files [view_screen]
  37. run: |
  38. ./electronics/scripts/export_jlcpcb.py --release-prefix releases/view_screen/ electronics/view_screen/view_screen.kicad_pcb
  39. cp -r electronics/build/view_screen-jlc electronics/build/outputs
  40. - name: Export PCB overview PDF [view_screen]
  41. run: |
  42. ./electronics/scripts/generate_pdf.py --release-prefix releases/view_screen/ electronics/view_screen/view_screen.kicad_pcb
  43. cp electronics/build/view_screen-pcb-packet.pdf electronics/build/outputs
  44. env:
  45. PYTHONUNBUFFERED: 1
  46. - name: Export artifacts (KiBot) [view_base]
  47. uses: INTI-CMNB/KiBot@db2185ac51d83f729e632c38e23b2d9df7ccd460
  48. with:
  49. config: electronics/view_base/view_base.kibot.yml
  50. dir: electronics/build/outputs
  51. schema: 'electronics/view_base/view_base.kicad_sch'
  52. board: 'electronics/view_base/view_base.kicad_pcb'
  53. - name: Export artifacts (KiBot) [view_screen]
  54. uses: INTI-CMNB/KiBot@db2185ac51d83f729e632c38e23b2d9df7ccd460
  55. with:
  56. config: electronics/view_screen/view_screen.kibot.yml
  57. dir: electronics/build/outputs
  58. schema: 'electronics/view_screen/view_screen.kicad_sch'
  59. board: 'electronics/view_screen/view_screen.kicad_pcb'
  60. - name: Update 3D artifacts [view_base]
  61. # Need to chown files back to runner, as ownership gets set to root by the KiBot Actions
  62. run: |
  63. sudo chown runner:docker electronics/build/outputs/*
  64. mv electronics/build/outputs/view_base-3D_top.png electronics/build/outputs/view_base-front-3d.png
  65. ./scripts/annotate_image.sh electronics/build/outputs/view_base-front-3d.png
  66. mv electronics/build/outputs/view_base-3D_bottom.png electronics/build/outputs/view_base-back-3d.png
  67. ./scripts/annotate_image.sh electronics/build/outputs/view_base-back-3d.png
  68. env:
  69. PYTHONUNBUFFERED: 1
  70. - name: Update 3D artifacts [view_screen]
  71. # Need to chown files back to runner, as ownership gets set to root by the KiBot Actions
  72. run: |
  73. sudo chown runner:docker electronics/build/outputs/*
  74. mv electronics/build/outputs/view_screen-3D_top.png electronics/build/outputs/view_screen-front-3d.png
  75. ./scripts/annotate_image.sh electronics/build/outputs/view_screen-front-3d.png
  76. mv electronics/build/outputs/view_screen-3D_bottom.png electronics/build/outputs/view_screen-back-3d.png
  77. ./scripts/annotate_image.sh electronics/build/outputs/view_screen-back-3d.png
  78. env:
  79. PYTHONUNBUFFERED: 1
  80. - name: Archive artifacts
  81. uses: actions/upload-artifact@v2
  82. if: always()
  83. with:
  84. name: electronics
  85. path: |
  86. electronics/build
  87. - name: Configure AWS Credentials
  88. if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
  89. uses: aws-actions/configure-aws-credentials@v1
  90. with:
  91. aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  92. aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  93. aws-region: us-east-1
  94. - name: Sync artifacts to S3
  95. if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
  96. run: |
  97. aws s3 sync electronics/build/outputs s3://smartknob-artifacts/${GITHUB_REF#refs/heads/}/electronics --delete --cache-control max-age=0,no-cache