Feature/covalent #29
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | ||
on: | ||
# Runs for pull requests | ||
pull_request: | ||
branches: | ||
- master | ||
permissions: | ||
id-token: write | ||
environment: cloud-ci | ||
jobs: | ||
environment: cloud-ci | ||
cloud-tests: | ||
environment: cloud-ci | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
include: | ||
- arch: cuda | ||
exclude: "no-cuda" | ||
run_on: azure__a100 | ||
# - arch: rocm | ||
# exclude : "no-rocm" | ||
runs-on: ubuntu-latest | ||
environment: cloud-ci | ||
# Cancel previous jobs if a new version was pushed | ||
concurrency: | ||
group: "${{ github.ref }}-${{ matrix.arch }}-${{ matrix.run_on }}" | ||
cancel-in-progress: true | ||
defaults: | ||
run: | ||
shell: bash -el {0} | ||
env: | ||
MILABENCH_CONFIG: "config/standard.yaml" | ||
MILABENCH_SYSTEM: "config/cloud-system.yaml" | ||
MILABENCH_BASE: "output" | ||
MILABENCH_ARGS: "" | ||
MILABENCH_GPU_ARCH: "${{ matrix.arch }}" | ||
MILABENCH_DASH: "no" | ||
ARM_TENANT_ID: "${{ secrets.ARM_TENANT_ID }}" | ||
ARM_SUBSCRIPTION_ID: "${{ secrets.ARM_SUBSCRIPTION_ID }}" | ||
AZURE_CORE_OUTPUT: none | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
token: ${{ github.token }} | ||
- uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.9 | ||
# Follow | ||
# https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret | ||
# to generate a clientId as well as a clientSecret | ||
- name: Azure login | ||
uses: azure/login@v2 | ||
environment: cloud-ci | ||
with: | ||
creds: | | ||
{ | ||
"clientId": "${{ secrets.ARM_CLIENT_ID }}", | ||
"clientSecret": "${{ secrets.ARM_CLIENT_SECRET }}", | ||
"subscriptionId": "${{ secrets.ARM_SUBSCRIPTION_ID }}", | ||
"tenantId": "${{ secrets.ARM_TENANT_ID }}" | ||
} | ||
- name: dependencies | ||
run: | | ||
python -m pip install -U pip | ||
python -m pip install -U poetry | ||
poetry lock --no-update | ||
poetry install | ||
- name: setup cloud credentials | ||
run: | | ||
mkdir -p ~/.aws | ||
mkdir -p ~/.ssh/covalent | ||
echo "${{ secrets.COVALENT_EC2_EXECUTOR_KEYPAIR }}" >~/.ssh/covalent/covalent-ec2-executor-keypair.pem | ||
echo "[default]" >~/.aws/credentials | ||
echo "aws_access_key_id=${{ secrets.AWS_ACCESS_KEY_ID }}" >>~/.aws/credentials | ||
echo "aws_secret_access_key=${{ secrets.AWS_SECRET_ACCESS_KEY }}" >>~/.aws/credentials | ||
chmod -R a-rwx,u+rwX ~/.aws ~/.ssh | ||
- name: setup cloud | ||
run: | | ||
_system=$( | ||
poetry run milabench cloud \ | ||
--setup \ | ||
--run-on ${{ matrix.run_on }} | ||
) | ||
{ read _hash ; }< <( | ||
echo -n "$_system" | while read l | ||
do | ||
if [[ "$l" == "# hash::>"* ]] | ||
then | ||
echo -n "${l#*::>}" | ||
fi | ||
done | ||
echo | ||
) | ||
if [[ -z "${_hash}" ]] | ||
then | ||
>&2 echo "Failed to fetch system config hash" | ||
exit 1 | ||
fi | ||
echo -n "$_system" >$MILABENCH_SYSTEM.$_hash | ||
echo "MILABENCH_SYSTEM=$MILABENCH_SYSTEM.$_hash" >>$GITHUB_ENV | ||
- name: install benchmarks | ||
run: | | ||
poetry run milabench install --variant ${{ matrix.arch }} | ||
- name: prepare benchmarks | ||
run: | | ||
poetry run milabench prepare | ||
- name: run benchmarks | ||
run: | | ||
poetry run milabench run | ||
- name: Summary | ||
run: | | ||
# git remote set-url origin "https://${{ vars.REPORTS_USERNAME }}:${{ secrets.REPORTS_PAT }}@$(git remote get-url origin | cut -d'/' -f3-)" | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "GitHub CI" | ||
poetry run milabench report --push | ||
- name: teardown cloud | ||
if: always() | ||
run: | | ||
if [[ -f "${MILABENCH_SYSTEM%.*}" ]] | ||
then | ||
export MILABENCH_SYSTEM=${MILABENCH_SYSTEM%.*} | ||
fi | ||
poetry run milabench cloud \ | ||
--teardown \ | ||
--run-on ${{ matrix.run_on }} \ | ||
--all |