diff --git a/.github/workflows/test-on-ryot.yml b/.github/workflows/test-on-ryot.yml deleted file mode 100644 index 893d0111c3..0000000000 --- a/.github/workflows/test-on-ryot.yml +++ /dev/null @@ -1,105 +0,0 @@ ---- -# Run 'compile_and_test_for_board.py' on connected boards. -# -# This workflow will run on a RYOT (Run Your Own Test) machine and launch -# all tests on all boards currently connected to that machine. This -# workflow relies on self-hosted runners, this means building and -# flashing happens on the self-hosted runner (all in docker). An alternative -# approach was used in https://github.com/RIOT-OS/RIOT/pull/14600, where -# the RYOT machine was only used for remote flashing, this is a better -# alternative if ssh access is possible. -# -# Documentation: -# -# * Setup a RYOT machine: -# https://github.com/fjmolinas/riot-ryot/blob/master/setup.md -# -# * Requirements (already filled by a RYOT machine): -# * Add one or more self-hosted runners: -# https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners -# * All required flashing tools installed -# * udev rules that map all BOARD to /dev/riot/tty-$(BOARD), see -# http://riot-os.org/api/advanced-build-system-tricks.html#multiple-boards-udev -# * RIOT_MAKEFILES_GLOBAL_PRE that sets PORT and DEBUG_ADAPTER_ID for each -# BOARD -# * A list of connected BOARDs in JSON format so that fromJSON can be used -# to dynamically setup the matrix, e.g. make target providing this: -# https://github.com/fjmolinas/riot-ryot/blob/72fc9ad710a2219e942c5965a014e934822e9da5/template/conf/makefiles.pre#L19-L24 -# * RYOT: https://github.com/fjmolinas/riot-ryot - -name: test-on-ryot - -on: - # Schedule weekly runs Saturday at 00:00 on master - schedule: - - cron: '0 0 * * 6' - push: - # Run on all new release candidates - tags: - - '[0-9][0-9][0-9][0-9].[0-9][0-9]-RC[0-9]*' - - '[0-9][0-9][0-9][0-9].[0-9][0-9]' - - '[0-9][0-9][0-9][0-9].[0-9][0-9].*' -env: - # self-hosted runners are started by a systemd which is not a "login" shell - # this means that no local environment variables are loaded (e.g. /etc/environment) - # when the runner is started. So explicitly set RIOT_MAKEFILES_GLOBAL_PRE - # to set PORT and DEBUG_ADAPTER_ID per BOARD - RIOT_MAKEFILES_GLOBAL_PRE: '/builds/conf/makefiles.pre' - -jobs: - connected_boards: - name: Get Connected Boards - runs-on: self-hosted - outputs: - boards: ${{ steps.ci-connected-boards.outputs.boards }} - steps: - # Get all currently connected boards if not passed through an input - - id: ci-connected-boards - run: echo "::set-output name=boards::$(make -C /builds/boards/ list-boards-json --no-print-directory)" - - # Runs all tests on connected boards - compile_and_test_for_board: - name: ${{ matrix.board }} - runs-on: self-hosted - needs: connected_boards - # ci-riot-tribe has 8 cores, parallelism will depend on actually configured - # runners - strategy: - max-parallel: 7 - fail-fast: false - matrix: - board: ${{ fromJson(needs.connected_boards.outputs.boards) }} - env: - BUILD_IN_DOCKER: 1 - COMPILE_AND_TEST_FOR_BOARD: /builds/boards/RIOT/dist/tools/compile_and_test_for_board/compile_and_test_for_board.py - # args for compile_and_test_for_board script - COMPILE_AND_TEST_ARGS: --with-test-only --report-xml --incremental - # environment vars for compile_and_test_for_board script to pass - # USEMODULE and CFLAGS use: - # DOCKER_ENVIRONMENT_CMDLINE=\'-e USEMODULE=\' - # DOCKER_ENVIRONMENT_CMDLINE=\'-e CFLAGS=-D\' - COMPILE_AND_TEST_VARS: '' - APPLICATIONS: '' - # Exclude 'tests/periph/timer_short_relative_set' since its expected - # to fail on most BOARDs - APPLICATIONS_EXCLUDE: 'tests/periph/timer_short_relative_set' - steps: - - name: Checkout RIOT - uses: actions/checkout@main - with: - ref: ${{ github.event.inputs.riot_version }} - # Make sure it runs git clean -xdff before fetching - clean: true - - name: Run compile_and_test_for_board.py - run: | - ${COMPILE_AND_TEST_VARS} ${COMPILE_AND_TEST_FOR_BOARD} . \ - ${{ matrix.board }} results-${{ matrix.board }} \ - ${COMPILE_AND_TEST_ARGS} \ - --applications="${APPLICATIONS}" \ - --applications-exclude="${APPLICATIONS_EXCLUDE}" - - name: Archive results - if: always() - uses: actions/upload-artifact@v2 - with: - name: ${{ matrix.board }} - path: results-${{ matrix.board }}