Skip to content

CI: Enable and fix checks - Pt3 (#33) #94

CI: Enable and fix checks - Pt3 (#33)

CI: Enable and fix checks - Pt3 (#33) #94

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
# Required: allow read access to the content for analysis.
contents: read
# Optional: allow write access to checks to allow the action to annotate code in the PR.
checks: write
# Required: Access to container images
packages: read
jobs:
detect-go-modules:
runs-on: ubuntu-latest
outputs:
modules: ${{ steps.set-modules.outputs.modules }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- id: set-modules
run: echo "modules=$(go list -m -json | jq -s '.' | jq -c '[.[].Dir]')" >> $GITHUB_OUTPUT
go-lint:
needs: detect-go-modules
container:
image: ghcr.io/downercase/ecal-go:latest
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
modules: ${{ fromJSON(needs.detect-go-modules.outputs.modules) }}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- name: golangci-lint ${{ matrix.modules }}
uses: golangci/golangci-lint-action@v6
with:
version: latest
working-directory: ${{ matrix.modules }}
go-test:
container:
image: ghcr.io/downercase/ecal-go:latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- name: Build
run: go build -v ./...
- name: Test
run: go test -v ./...
cmake:
container:
image: ghcr.io/downercase/ecal-go-cpp:latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Configure
run: cmake -S . -B build -G Ninja -Werror=dev -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_TOOLCHAIN_FILE=project/gcc.cmake
- name: Build
run: cmake --build ./build