Spaces:
Paused
Paused
name: Self-hosted runner (check runner status) | |
# Note that each job's dependencies go into a corresponding docker file. | |
# | |
# For example for `run_all_tests_torch_cuda_extensions_gpu` the docker image is | |
# `huggingface/transformers-pytorch-deepspeed-latest-gpu`, which can be found at | |
# `docker/transformers-pytorch-deepspeed-latest-gpu/Dockerfile` | |
on: | |
repository_dispatch: | |
schedule: | |
# run per hour | |
- cron: "0 */1 * * *" | |
env: | |
TRANSFORMERS_IS_CI: yes | |
jobs: | |
check_runner_status: | |
name: Check Runner Status | |
runs-on: ubuntu-latest | |
outputs: | |
offline_runners: ${{ steps.set-offline_runners.outputs.offline_runners }} | |
steps: | |
- name: Checkout transformers | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: Check Runner Status | |
run: python utils/check_self_hosted_runner.py --target_runners single-gpu-ci-runner-docker,multi-gpu-ci-runner-docker,single-gpu-scheduled-ci-runner-docker,multi-scheduled-scheduled-ci-runner-docker,single-gpu-doctest-ci-runner-docker --token ${{ secrets.ACCESS_REPO_INFO_TOKEN }} | |
- id: set-offline_runners | |
name: Set output for offline runners | |
if: ${{ always() }} | |
run: | | |
offline_runners=$(python3 -c 'fp = open("offline_runners.txt"); failed = fp.read(); fp.close(); print(failed)') | |
echo "offline_runners=$offline_runners" >> $GITHUB_OUTPUT | |
send_results: | |
name: Send results to webhook | |
runs-on: ubuntu-latest | |
needs: check_runner_status | |
if: ${{ failure() }} | |
steps: | |
- name: Preliminary job status | |
shell: bash | |
run: | | |
echo "Runner availability: ${{ needs.check_runner_status.result }}" | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
- name: Send message to Slack | |
env: | |
CI_SLACK_BOT_TOKEN: ${{ secrets.CI_SLACK_BOT_TOKEN }} | |
CI_SLACK_CHANNEL_ID: ${{ secrets.CI_SLACK_CHANNEL_ID }} | |
CI_SLACK_CHANNEL_ID_DAILY: ${{ secrets.CI_SLACK_CHANNEL_ID_DAILY }} | |
CI_SLACK_CHANNEL_DUMMY_TESTS: ${{ secrets.CI_SLACK_CHANNEL_DUMMY_TESTS }} | |
CI_SLACK_REPORT_CHANNEL_ID: ${{ secrets.CI_SLACK_CHANNEL_ID_DAILY }} | |
ACCESS_REPO_INFO_TOKEN: ${{ secrets.ACCESS_REPO_INFO_TOKEN }} | |
CI_EVENT: runner status check | |
RUNNER_STATUS: ${{ needs.check_runner_status.result }} | |
OFFLINE_RUNNERS: ${{ needs.check_runner_status.outputs.offline_runners }} | |
# We pass `needs.setup.outputs.matrix` as the argument. A processing in `notification_service.py` to change | |
# `models/bert` to `models_bert` is required, as the artifact names use `_` instead of `/`. | |
run: | | |
pip install slack_sdk | |
python utils/notification_service.py | |