name: CI ARC E2E Linux VM Test on: push: branches: - master pull_request: branches: - master workflow_dispatch: permissions: contents: read env: TARGET_ORG: actions-runner-controller TARGET_REPO: arc_e2e_test_dummy IMAGE_NAME: "arc-test-image" IMAGE_VERSION: "0.4.0" jobs: default-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" single-namespace-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | kubectl create namespace arc-runners helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ --set flags.watchSingleNamespace=arc-runners \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" dind-mode-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: arc-test-dind-workflow.yaml steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ --set containerMode.type="dind" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" kubernetes-mode-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-kubernetes-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | echo "Install openebs/dynamic-localpv-provisioner" helm repo add openebs https://openebs.github.io/charts helm repo update helm install openebs openebs/openebs -n openebs --create-namespace helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems kubectl wait --timeout=30s --for=condition=ready pod -n openebs -l name=openebs-localpv-provisioner - name: Install gha-runner-scale-set id: install_arc run: | ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ --set containerMode.type="kubernetes" \ --set containerMode.kubernetesModeWorkVolumeClaim.accessModes={"ReadWriteOnce"} \ --set containerMode.kubernetesModeWorkVolumeClaim.storageClassName="openebs-hostpath" \ --set containerMode.kubernetesModeWorkVolumeClaim.resources.requests.storage="1Gi" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" auth-proxy-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | docker run -d \ --name squid \ --publish 3128:3128 \ huangtingluo/squid-proxy:latest kubectl create namespace arc-runners kubectl create secret generic proxy-auth \ --namespace=arc-runners \ --from-literal=username=github \ --from-literal=password='actions' ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ --set proxy.https.url="http://host.minikube.internal:3128" \ --set proxy.https.credentialSecretRef="proxy-auth" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" anonymous-proxy-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | docker run -d \ --name squid \ --publish 3128:3128 \ ubuntu/squid:latest ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ --set proxy.https.url="http://host.minikube.internal:3128" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems" self-signed-ca-setup: runs-on: ubuntu-latest timeout-minutes: 20 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.id == github.repository_id env: WORKFLOW_FILE: "arc-test-workflow.yaml" steps: - uses: actions/checkout@v3 with: ref: ${{github.head_ref}} - uses: ./.github/actions/setup-arc-e2e id: setup with: app-id: ${{secrets.E2E_TESTS_ACCESS_APP_ID}} app-pk: ${{secrets.E2E_TESTS_ACCESS_PK}} image-name: ${{env.IMAGE_NAME}} image-tag: ${{env.IMAGE_VERSION}} target-org: ${{env.TARGET_ORG}} - name: Install gha-runner-scale-set-controller id: install_arc_controller run: | helm install arc \ --namespace "arc-systems" \ --create-namespace \ --set image.repository=${{ env.IMAGE_NAME }} \ --set image.tag=${{ env.IMAGE_VERSION }} \ ./charts/gha-runner-scale-set-controller \ --debug count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for controller pod with label app.kubernetes.io/name=gha-runner-scale-set-controller" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l app.kubernetes.io/name=gha-runner-scale-set-controller kubectl get pod -n arc-systems kubectl describe deployment arc-gha-runner-scale-set-controller -n arc-systems - name: Install gha-runner-scale-set id: install_arc run: | docker run -d \ --rm \ --name mitmproxy \ --publish 8080:8080 \ -v ${{ github.workspace }}/mitmproxy:/home/mitmproxy/.mitmproxy \ mitmproxy/mitmproxy:latest \ mitmdump count=0 while true; do if [ -f "${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.pem" ]; then echo "CA cert generated" cat ${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.pem break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for mitmproxy generate its CA cert" exit 1 fi sleep 1 count=$((count+1)) done sudo cp ${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.pem ${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.crt sudo chown runner ${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.crt kubectl create namespace arc-runners kubectl -n arc-runners create configmap ca-cert --from-file="${{ github.workspace }}/mitmproxy/mitmproxy-ca-cert.crt" kubectl -n arc-runners get configmap ca-cert -o yaml ARC_NAME=${{github.job}}-$(date +'%M%S')$((($RANDOM + 100) % 100 + 1)) helm install "$ARC_NAME" \ --namespace "arc-runners" \ --create-namespace \ --set githubConfigUrl="https://github.com/${{ env.TARGET_ORG }}/${{env.TARGET_REPO}}" \ --set githubConfigSecret.github_token="${{ steps.setup.outputs.token }}" \ --set proxy.https.url="http://host.minikube.internal:8080" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ --set "githubServerTLS.certificateFrom.configMapKeyRef.name=ca-cert" \ --set "githubServerTLS.certificateFrom.configMapKeyRef.key=mitmproxy-ca-cert.crt" \ --set "githubServerTLS.runnerMountPath=/usr/local/share/ca-certificates/" \ ./charts/gha-runner-scale-set \ --debug echo "ARC_NAME=$ARC_NAME" >> $GITHUB_OUTPUT count=0 while true; do POD_NAME=$(kubectl get pods -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME -o name) if [ -n "$POD_NAME" ]; then echo "Pod found: $POD_NAME" break fi if [ "$count" -ge 60 ]; then echo "Timeout waiting for listener pod with label actions.github.com/scale-set-name=$ARC_NAME" exit 1 fi sleep 1 count=$((count+1)) done kubectl wait --timeout=30s --for=condition=ready pod -n arc-systems -l actions.github.com/scale-set-name=$ARC_NAME kubectl get pod -n arc-systems - name: Test ARC E2E uses: ./.github/actions/execute-assert-arc-e2e timeout-minutes: 10 with: auth-token: ${{ steps.setup.outputs.token }} repo-owner: ${{ env.TARGET_ORG }} repo-name: ${{env.TARGET_REPO}} workflow-file: ${{env.WORKFLOW_FILE}} arc-name: ${{steps.install_arc.outputs.ARC_NAME}} arc-namespace: "arc-runners" arc-controller-namespace: "arc-systems"