Skip to content

Commit

Permalink
action template
Browse files Browse the repository at this point in the history
  • Loading branch information
laves committed Jun 21, 2023
1 parent c96a70f commit b589d55
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 96 deletions.
28 changes: 28 additions & 0 deletions .github/actions/c-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: C Template

inputs:
pv_platform:
required: true
output_dir:
required: true

runs:
steps:
- name: Create build directory
run: cmake -B ./build -S . -DPV_PLATFORM="${{ inputs.pv_platform }}" -DOUTPUT_DIR="${{ inputs.output_dir }}"

- name: Build
run: cmake --build ./build

- name: Run get audio devices
run: ./demo --show_audio_devices
working-directory: build

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.pv_platform }}
path: |
lib/${{ inputs.output_dir }}/libpv_recorder.*
lib/node/${{ inputs.output_dir }}/pv_recorder.node
retention-days: 3
163 changes: 67 additions & 96 deletions .github/workflows/c.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,127 +28,98 @@ jobs:
os: [ubuntu-latest, windows-latest]
include:
- os: ubuntu-latest
pv-platform: linux
output-dir: linux/x86_64
pv_platform: linux
output_dir: linux/x86_64
- os: windows-latest
pv-platform: windows
output-dir: windows/amd64
pv_platform: windows
output_dir: windows/amd64
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Create build directory
run: cmake -B ./build -S . -DPV_PLATFORM="${{ matrix.pv-platform }}" -DOUTPUT_DIR="${{ matrix.output-dir }}"

- name: Build
run: cmake --build ./build

- name: Run get audio devices
run: ./demo --show_audio_devices
working-directory: build

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.pv-platform }}
path: |
lib/${{matrix.output-dir}}/libpv_recorder.*
lib/node/${{matrix.output-dir}}/pv_recorder.node
retention-days: 3

build-self-hosted-mac:
runs-on: pv-ios

strategy:
matrix:
pv-platform: [mac-arm64, mac-x86_64]
include:
- pv-platform: mac-arm64
output-dir: mac/arm64
- pv-platform: mac-x86_64
output-dir: mac/x86_64

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Create build directory
run: cmake -B ./build -S . -DPV_PLATFORM="${{ matrix.pv-platform }}" -DOUTPUT_DIR="${{ matrix.output-dir }}"

- name: Build
run: cmake --build ./build

- name: Run get audio devices
run: ./demo --show_audio_devices
working-directory: build
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.pv-platform }}
path: |
lib/${{matrix.output-dir}}/libpv_recorder.*
lib/node/${{matrix.output-dir}}/pv_recorder.node
retention-days: 3
- uses: ./.github/actions/c-template
name: Build and test
with:
pv_platform: ${{ matrix.pv_platform }}
output_dir: ${{ matrix.output_dir }}

build-self-hosted:
runs-on: ${{ matrix.machine }}

strategy:
matrix:
machine: [rpi2, rpi3-32, rpi3-64, rpi4-32, rpi4-64, jetson, beaglebone]
machine: [rpi2, rpi3-64, rpi4-32, rpi4-64, jetson, beaglebone]
include:
- machine: rpi2
pv-platform: raspberry-pi2
output-dir: raspberry-pi/cortex-a7
pv_platform: raspberry-pi2
output_dir: raspberry-pi/cortex-a7
- machine: rpi3-32
pv-platform: raspberry-pi3
output-dir: raspberry-pi/cortex-a53
pv_platform: raspberry-pi3
output_dir: raspberry-pi/cortex-a53
- machine: rpi3-64
pv-platform: raspberry-pi3-64
output-dir: raspberry-pi/cortex-a53-aarch64
pv_platform: raspberry-pi3-64
output_dir: raspberry-pi/cortex-a53-aarch64
- machine: rpi4-32
pv-platform: raspberry-pi4
output-dir: raspberry-pi/cortex-a72
pv_platform: raspberry-pi4
output_dir: raspberry-pi/cortex-a72
- machine: rpi4-64
pv-platform: raspberry-pi4-64
output-dir: raspberry-pi/cortex-a72-aarch64
pv_platform: raspberry-pi4-64
output_dir: raspberry-pi/cortex-a72-aarch64
- machine: jetson
pv-platform: jetson-nano
output-dir: jetson/cortex-a57-aarch64
pv_platform: jetson-nano
output_dir: jetson/cortex-a57-aarch64
- machine: beaglebone
pv-platform: beaglebone
output-dir: beaglebone
pv_platform: beaglebone
output_dir: beaglebone

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/checkout@v3
with:
submodules: recursive

- uses: ./.github/actions/c-template
name: Build and test
with:
pv_platform: ${{ matrix.pv_platform }}
output_dir: ${{ matrix.output_dir }}

- name: Create build directory
run: cmake -B ./build -S . -DPV_PLATFORM="${{ matrix.pv-platform }}" -DOUTPUT_DIR="${{ matrix.output-dir }}"
build-mac:
runs-on: pv-ios
strategy:
matrix:
pv-platform: [mac-arm64, mac-x86_64]
include:
- pv_platform: mac-arm64
output_dir: mac/arm64
- pv_platform: mac-x86_64
output_dir: mac/x86_64
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Build
run: cmake --build ./build
- uses: ./.github/actions/c-template
name: Build and test
with:
pv_platform: ${{ matrix.pv_platform }}
output_dir: ${{ matrix.output_dir }}

- name: Run get audio devices
run: ./demo --show_audio_devices
working-directory: build
build-rpi0:
runs-on: rpi3-32
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.pv-platform }}
path: |
lib/${{matrix.output-dir}}/libpv_recorder.*
lib/node/${{matrix.output-dir}}/pv_recorder.node
retention-days: 3
- uses: ./.github/actions/c-template
name: Build and test
with:
pv_platform: raspberry-pi
output_dir: raspberry-pi/arm11

collect-artifacts:
runs-on: ubuntu-latest
needs: [build-github-hosted, build-self-hosted, build-self-hosted-mac]
needs: [build-github-hosted, build-self-hosted, build-mac, build-rpi0]

steps:
- name: Download artifacts
Expand Down

0 comments on commit b589d55

Please sign in to comment.