mirror of
https://github.com/huggingface/transformers.git
synced 2025-08-03 03:31:05 +06:00

* Use token * Avoid failure * better error * Fix * fix style --------- Co-authored-by: ydshieh <ydshieh@users.noreply.github.com>
69 lines
2.7 KiB
YAML
69 lines
2.7 KiB
YAML
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
|