name: release
on:
  schedule:
    - cron: '0 10 * * *'
  workflow_dispatch:

jobs:
  build_masterci:
    name: build master-ci
    env:
      TARGET_DIR: /tmp/openpilot
      ImageOS: ubuntu20
    container:
      image: ghcr.io/commaai/openpilot-base:latest
    runs-on: ubuntu-latest
    if: github.repository == 'commaai/openpilot'
    permissions:
      checks: read
      contents: write
    steps:
    - name: Install wait-on-check-action dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y libyaml-dev
    - name: Wait for green check mark
      if: ${{ github.event_name != 'workflow_dispatch' }}
      uses: lewagon/wait-on-check-action@ccfb013c15c8afb7bf2b7c028fb74dc5a068cccc
      with:
        ref: master
        wait-interval: 30
        running-workflow-name: 'build master-ci'
        repo-token: ${{ secrets.GITHUB_TOKEN }}
        check-regexp: ^((?!.*(build prebuilt).*).)*$
    - uses: actions/checkout@v4
      with:
        submodules: true
        fetch-depth: 0
    - name: Pull LFS
      run: |
        git config --global --add safe.directory '*'
        git lfs pull
    - name: Build master-ci
      run: |
        release/build_devel.sh
    - name: Run tests
      run: |
        export PYTHONPATH=$TARGET_DIR
        cd $TARGET_DIR
        scons -j$(nproc)
        pytest -n logical selfdrive/car/tests/test_car_interfaces.py
    - name: Push master-ci
      run: |
        unset TARGET_DIR
        BRANCH=master-ci release/build_devel.sh
