name: Build Gluon on: push: branches: - master - next* - v20* pull_request: types: [opened, synchronize, reopened] permissions: contents: read jobs: changed: 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 changed targets to create build matrix target: ${{ fromJSON(needs.changed.outputs.targets) }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Dependencies run: sudo contrib/actions/install-dependencies.sh - name: Build run: contrib/actions/run-build.sh ${{ matrix.target }} - name: Archive build logs if: ${{ !cancelled() }} uses: actions/upload-artifact@v3 with: name: ${{ matrix.target }}_logs path: openwrt/logs - name: Archive build output uses: actions/upload-artifact@v3 with: name: ${{ matrix.target }}_output path: output