on: [push, pull_request]
name: Continuous Integration
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  fw-ci:
    name: Build
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./src/spice2x
    steps:
      - uses: actions/checkout@v4
      - name: Set ccache environment variables
        run: |
          echo "CCACHE_DIR=${{ github.workspace }}/src/spice2x/.ccache" >> $GITHUB_ENV
      - name: Install ccache
        uses: hendrikmuhs/ccache-action@v1.2
      - name: Calculate commit SHA
        id: vars
        run: |
          calculatedSha=$(git rev-parse --short ${{ github.sha }})
          echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
      - name: Compile
        run: ./build_docker.sh
      - uses: actions/upload-artifact@v4
        with:
          name: spice2x-ci-${{ env.COMMIT_SHORT_SHA }}
          path: src/spice2x/bin
          if-no-files-found: error