ci: add script to check modules on registry.coder.com (#340)
Added a script + corresponding GitHub action to check active modules on registry.coder.compull/341/head
							parent
							
								
									f5ab7995d1
								
							
						
					
					
						commit
						57d96ca27f
					
				@ -0,0 +1,36 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
set -o pipefail
 | 
			
		||||
REGISTRY_BASE_URL="${REGISTRY_BASE_URL:-https://registry.coder.com}"
 | 
			
		||||
set -u
 | 
			
		||||
 | 
			
		||||
if [[ -n "${VERBOSE:-}" ]]; then
 | 
			
		||||
    set -x
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
status=0
 | 
			
		||||
declare -a modules=()
 | 
			
		||||
declare -a failures=()
 | 
			
		||||
for path in $(find . -not -path '*/.*' -type f -name main.tf -maxdepth 2 | cut -d '/' -f 2 | sort -u); do
 | 
			
		||||
    modules+=("${path}")
 | 
			
		||||
done
 | 
			
		||||
echo "Checking modules: ${modules[*]}"
 | 
			
		||||
for module in "${modules[@]}"; do
 | 
			
		||||
    # Trim leading/trailing whitespace from module name
 | 
			
		||||
    module=$(echo "${module}" | xargs)
 | 
			
		||||
    url="${REGISTRY_BASE_URL}/modules/${module}"
 | 
			
		||||
    printf "=== Check module %s at %s\n" "${module}" "${url}"
 | 
			
		||||
    status_code=$(curl --output /dev/null --head --silent --fail --location "${url}" --retry 3 --write-out "%{http_code}")
 | 
			
		||||
    # shellcheck disable=SC2181
 | 
			
		||||
    if (( status_code != 200 )); then
 | 
			
		||||
        printf "==> FAIL(%s)\n" "${status_code}"
 | 
			
		||||
        status=1
 | 
			
		||||
        failures+=("${module}")
 | 
			
		||||
    else
 | 
			
		||||
        printf "==> OK(%s)\n" "${status_code}"
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if (( status != 0 )); then
 | 
			
		||||
    echo "The following modules appear to have issues: ${failures[*]}"
 | 
			
		||||
fi
 | 
			
		||||
exit "${status}"
 | 
			
		||||
@ -0,0 +1,18 @@
 | 
			
		||||
name: Check modules on registry.coder.com
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: "*/13 * * * *" # Runs every 13th minute
 | 
			
		||||
  workflow_dispatch: # Allows manual triggering of the workflow if needed
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  run-script:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout repository
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      - name: Run check.sh
 | 
			
		||||
        run: |
 | 
			
		||||
          ./.github/scripts/check.sh
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue