.github/workflows/run_tests_in_docker.yml
author Edouard Tisserant <edouard@beremiz.fr>
Fri, 11 Oct 2024 10:34:15 +0200
changeset 4026 a3cf9f635952
parent 3958 d5fb90fd2a79
child 4030 45532de22b75
permissions -rw-r--r--
SVGHMI: add ForEach widget example
name: CI Automated testing

on:
  push:
    branches: [ python3 ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
      with:
          path: beremiz

    - uses: actions/checkout@v3
      with:
          repository: beremiz/matiec
          ref: d3196244bf50b2d6d512a0240e10dfa75edbeb7b
          path: matiec

    - uses: actions/checkout@v3
      with:
          repository: open62541/open62541
          # v1.3.7
          ref: b8ac9e77f703e6ba5c012b886a8821037503daa6
          path: open62541
          submodules: recursive

    - uses: actions/checkout@v3
      with:
          repository: beremiz/Modbus
          ref: 4d7d67a8e911d744165709c20a254b5cb924ec71
          path: Modbus

    - uses: actions/checkout@v3
      with:
          repository: EmbeddedRPC/erpc
          # v1.12.0
          ref: 85d3dd8656ccce4c2d929a69484fb8d88ec6c6c3
          path: erpc
              
    - name: Restore cached docker image
      id: cache-docker-restore
      uses: actions/cache/restore@v3
      env:
        cache-name: cache-docker
      with:
        path: /tmp/latest.tar
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('beremiz/tests/tools/Docker', 'beremiz/requirements.txt') }}

    - if: ${{ steps.cache-docker-restore.outputs.cache-hit == false }}
      name: Create docker image
      run: |
        cd beremiz/tests/tools/Docker
        ./build_docker_image.sh
        docker image save --output="/tmp/latest.tar" beremiz_sikuli

    - if: ${{ steps.cache-docker-restore.outputs.cache-hit == false }}
      name: Save docker image in cache
      id: cache-docker-save
      uses: actions/cache/save@v3
      with:
        path: /tmp/latest.tar
        key: ${{ steps.cache-docker-restore.outputs.cache-primary-key }}

    - if: ${{ steps.cache-docker-restore.outputs.cache-hit != false }}
      name: Re-use docker image
      run: |
        docker image load --input="/tmp/latest.tar" 

    - name: Create docker container
      run: |
        cd beremiz/tests/tools/Docker
        ./create_docker_container.sh ${{ github.workspace }}/test
        
    - name: Run tests in docker
      run: |
        cd beremiz/tests/tools/Docker
        ./do_test_in_docker.sh

    - name: Upload test resuts artifact
      uses: actions/upload-artifact@v3
      if: failure()
      with:
        name: test_results
        path: ${{ github.workspace }}/test
        retention-days: 5