Skip to content
Snippets Groups Projects
build-gluon.yml 1.52 KiB
Newer Older
David Bauer's avatar
David Bauer committed
name: Build Gluon
on:
  push:
    branches:
      - master
David Bauer's avatar
David Bauer committed
  pull_request:
    types: [opened, synchronize, reopened]
permissions:
  contents: read

David Bauer's avatar
David Bauer committed
jobs:
    permissions:
      contents: read  # for dorny/paths-filter to fetch a list of changed files
      pull-requests: read  # for dorny/paths-filter to read pull requests
    runs-on: ubuntu-latest
    outputs:
      targets: ${{ steps.filter.outputs.changes }}
    steps:
      - uses: actions/checkout@v3

      # Filter targets based on changed files
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: .github/filters.yml

  build_firmware:
    needs: changed
    if: ${{ needs.changed.outputs.targets != '[]' && needs.changed.outputs.targets != '' }}
    strategy:
      fail-fast: false
      matrix:
        # Read back changd targets to create build matrix
        target: ${{ fromJSON(needs.changed.outputs.targets) }}
    runs-on: ubuntu-latest
David Bauer's avatar
David Bauer committed
    steps:
      - uses: actions/checkout@v3
      - name: Install Dependencies
        run: sudo contrib/actions/install-dependencies.sh
David Bauer's avatar
David Bauer committed
      - name: Build
        run: contrib/actions/run-build.sh ${{ matrix.target }}
      - name: Archive build logs
        if: ${{ !cancelled() }}
        uses: actions/upload-artifact@v3
          name: ${{ matrix.target }}_logs
David Bauer's avatar
David Bauer committed
      - name: Archive build output
        uses: actions/upload-artifact@v3
David Bauer's avatar
David Bauer committed
        with:
          name: ${{ matrix.target }}_output
David Bauer's avatar
David Bauer committed
          path: output