Skip to content

build-linux

build-linux #258

Workflow file for this run

name: build-linux
on:
push:
branches: [master]
paths:
- '.github/workflows/build-linux.yaml'
- 'include/**'
- 'src/**'
- 'test/**'
- 'tools/**'
- 'vendor/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'BSDmakefile'
- 'GNUmakefile'
- 'config.mk'
pull_request:
branches: [master]
types: [opened, synchronize, ready_for_review]
paths:
- '.github/workflows/build-linux.yaml'
- 'include/**'
- 'src/**'
- 'test/**'
- 'tools/**'
- 'vendor/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'BSDmakefile'
- 'GNUmakefile'
- 'config.mk'
schedule:
- cron: '0 0 * * 1'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
build-analyze:
permissions:
security-events: write
runs-on: ubuntu-latest
steps:
- name: checkout-repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: install-dependencies
run: xargs sudo apt-get install -y < Aptfile
- name: setup-audio-dev
run: |
sudo apt-get install -y pulseaudio alsa-utils
pulseaudio --start
pacmd load-module module-null-sink sink_name=DummyOutput sink_properties=device.description=DummyOutput
pacmd set-default-sink DummyOutput
echo "pcm.!default {
type pulse
}
ctl.!default {
type pulse
}" > ~/.asoundrc
sudo usermod -aG audio $USER
pulseaudio --kill && pulseaudio --start
- name: setup-rust-cache
uses: Swatinem/rust-cache@v2
with:
cache-targets: "false"
- name: setup-codeql
uses: github/codeql-action/init@v3
with:
languages: c-cpp
config: |
paths-ignore: [vendor]
- name: build
run: |
sudo -s -u ${USER} bash -c "PULSE_SERVER=\"unix:/run/user/$(id -u)/pulse/native\" make -j$(nproc)"
- name: build-editor
run: make editor -j$(nproc)
- name: test
run: make check -j$(nproc)
- name: test-results-report
if: ${{ always() }}
uses: test-summary/action@v2
with:
paths: carbon_results.xml
- name: test-coverage-report
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: analyze
uses: github/codeql-action/analyze@v3