name: ci on: pull_request: push: branches: - main schedule: - cron: '0 1 * * 0' jobs: docker-build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: docker/setup-buildx-action@v2 - name: Build docker builder-image uses: docker/build-push-action@v4 with: context: . file: builder.Dockerfile tags: cproject-builder:latest push: false load: true - name: Build library uses: https://github.com/addnab/docker-run-action@v3 with: image: cproject-builder:latest options: --volumes-from ${{ env.JOB_CONTAINER_NAME }} run: | /bin/bash -c "cd ${{ github.workspace }}; rm -rf build; cmake -B build; cmake --build build" - name: Test library uses: https://github.com/addnab/docker-run-action@v3 with: image: cproject-builder:latest options: --volumes-from ${{ env.JOB_CONTAINER_NAME }} run: | /bin/bash -c "cd ${{ github.workspace }}/tests/unittest; ceedling clobber; ceedling gcov:all; ceedling utils:gcov" - name: Archive coverage results shell: bash run: | staging="reports-${{github.run_number}}" mkdir -p "$staging" cp -r tests/unittest/build/artifacts/gcov "$staging" tar czf "$staging.tar.gz" "$staging" echo "ASSET=$staging.tar.gz" >> $GITHUB_ENV - name: Archive artifacts uses: actions/upload-artifact@v3 with: name: reports-${{github.run_number}} path: ${{ env.ASSET }} retention-days: 3