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: Local Remote Execution | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
permissions: read-all | |
jobs: | |
local: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04] | |
name: Local / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: >- # v4.1.1 | |
actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
- name: Install Nix | |
uses: >- #v7 | |
DeterminateSystems/nix-installer-action@5620eb4af6b562c53e4d4628c0b6e4f9d9ae8612 | |
- name: Cache Nix derivations | |
uses: >- # Custom commit, last pinned at 2023-11-17. | |
DeterminateSystems/magic-nix-cache-action@a04e6275a6bea232cd04fc6f3cbf20d4cb02a3e1 | |
- name: Build hello_lre with LRE toolchain. | |
run: > | |
nix develop --impure --command | |
bash -c "bazel run \ | |
--config=lre \ | |
--verbose_failures \ | |
//local-remote-execution/examples:hello_lre" | |
remote: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04] | |
name: Remote / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: >- # v4.1.1 | |
actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
- name: Install Nix | |
uses: >- #v7 | |
DeterminateSystems/nix-installer-action@5620eb4af6b562c53e4d4628c0b6e4f9d9ae8612 | |
- name: Cache Nix derivations | |
uses: >- # Custom commit, last pinned at 2023-11-17. | |
DeterminateSystems/magic-nix-cache-action@a04e6275a6bea232cd04fc6f3cbf20d4cb02a3e1 | |
- name: Start Kubernetes cluster | |
run: > | |
nix develop --impure --command | |
bash -c "cd deployment-examples/kubernetes \ | |
&& ./00_infra.sh \ | |
&& ./01_operations.sh \ | |
&& kubectl apply -k . \ | |
&& kubectl rollout status deploy/native-link-cas \ | |
&& kubectl rollout status deploy/native-link-scheduler \ | |
&& kubectl rollout status deploy/native-link-worker" | |
- name: Get gateway IPs | |
id: gateway-ips | |
run: | | |
echo "cache_ip=$(kubectl get gtw cache -o=jsonpath='{.status.addresses[0].value}')" >> "$GITHUB_ENV" | |
echo "scheduler_ip=$(kubectl get gtw scheduler -o=jsonpath='{.status.addresses[0].value}')" >> "$GITHUB_ENV" | |
- name: Print cluster state | |
run: | | |
kubectl get svc -A | |
kubectl get pod -A | |
kubectl get svc -A | |
kubectl get deployments -A | |
kubectl describe gtw | |
echo "cas" | |
kubectl logs -l app=native-link-cas | |
echo "scheduler" | |
kubectl logs -l app=native-link-scheduler | |
echo "worker" | |
kubectl logs -l app=native-link-worker | |
- name: Build hello_lre with LRE toolchain. | |
run: > | |
nix develop --impure --command | |
bash -c "bazel run \ | |
--config=lre \ | |
--remote_instance_name=main \ | |
--remote_cache=grpc://$cache_ip:50051 \ | |
--remote_executor=grpc://$scheduler_ip:50052 \ | |
--verbose_failures \ | |
//local-remote-execution/examples:hello_lre" |