github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/docs/content/developers/scripts/windows_buildkite_setup.sh (about)

     1  #!/bin/bash
     2  
     3  set -eu -o pipefail
     4  set -x
     5  
     6  if [ -z ${BUILDKITE_AGENT_TOKEN:-""} ]; then
     7    echo "Please set environment variable BUILDKITE_AGENT_TOKEN"
     8    exit 101
     9  fi
    10  
    11  mkcert -install
    12  
    13  # Set *global* line endings (not user) because the buildkite-agent may not be running as testbot user
    14  perl -pi -e 's/autocrlf = true/autocrlf = false\n\teol = lf/' "/c/Program Files/Git/etc/gitconfig"
    15  
    16  # Install Ubuntu from Microsoft store
    17  # Then wsl --set-default Ubuntu
    18  
    19  # Install buildkite-agent
    20  LATEST_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/buildkite/agent/releases/latest)
    21  LATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')
    22  NO_V_VERSION=${LATEST_VERSION#v}
    23  URL="https://github.com/buildkite/agent/releases/download/$LATEST_VERSION/buildkite-agent-windows-amd64-${NO_V_VERSION}.zip"
    24  mkdir -p /c/buildkite-agent/bin && cd /tmp && curl -L -O $URL
    25  cd /c/buildkite-agent && unzip /tmp/buildkite-agent-windows-amd64-${NO_V_VERSION}.zip
    26  perl -pi.bak -e 's/# tags="key1=val2,key2=val2"/tags="os=windows,architecture=amd64,osvariant=windows10pro,dockertype=dockerforwindows"/' /c/buildkite-agent/buildkite-agent.cfg
    27  perl -pi.bak -e 's/^build-path=.*$/build-path=C:\\Users\\testbot\\tmp\\buildkite/' /c/buildkite-agent/buildkite-agent.cfg
    28  perl -pi.bak -e 's/^build-path=.*$/build-path=C:\\Users\\testbot\\tmp\\buildkite/' /c/buildkite-agent/buildkite-agent.cfg
    29  perl -pi.bak -e "s/^token=.*\$/token=${BUILDKITE_AGENT_TOKEN}/" /c/buildkite-agent/buildkite-agent.cfg
    30  
    31  mv /c/buildkite-agent/buildkite-agent /c/buildkite-agent/bin
    32  
    33  nssm.exe stop buildkite-agent || true
    34  nssm.exe remove buildkite-agent confirm || true
    35  nssm.exe install buildkite-agent "C:\buildkite-agent\bin\buildkite-agent.exe" "start" || true
    36  nssm.exe set buildkite-agent AppStdout "C:\buildkite-agent\buildkite-agent.log"
    37  nssm.exe set buildkite-agent AppStderr "C:\buildkite-agent\buildkite-agent.lwinpty docker run -it -p 80 busybox:stable log"
    38  nssm.exe start buildkite-agent || true
    39  nssm.exe status buildkite-agent || true
    40  
    41  # Get firewall set up with a single run
    42  winpty docker run -it --rm -p 80 busybox:stable ls
    43  
    44  bash "/c/Program Files/ddev/windows_ddev_nfs_setup.sh"