e2e: local nexus
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									2d8166c4b9
								
							
						
					
					
						commit
						af7537dc3e
					
				
							
								
								
									
										8
									
								
								.github/e2e/nexus/docker-compose.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.github/e2e/nexus/docker-compose.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | services: | ||||||
|  |   nexus: | ||||||
|  |     image: sonatype/nexus3:${NEXUS_VERSION:-latest} | ||||||
|  |     volumes: | ||||||
|  |       - "./data:/nexus-data" | ||||||
|  |     ports: | ||||||
|  |       - "8081:8081" | ||||||
|  |       - "8082:8082" | ||||||
							
								
								
									
										9
									
								
								.github/e2e/nexus/env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.github/e2e/nexus/env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | REGISTRY_FQDN=localhost:8082 | ||||||
|  | REGISTRY_USER=admin | ||||||
|  | REGISTRY_PASSWORD=Nexus12345 | ||||||
|  | REGISTRY_SLUG=localhost:8082/test-docker-action | ||||||
|  | 
 | ||||||
|  | NEXUS_HOST=localhost | ||||||
|  | NEXUS_PORT=8081 | ||||||
|  | NEXUS_REGISTRY_PORT=8082 | ||||||
|  | NEXUS_REPO=test-docker-action | ||||||
							
								
								
									
										93
									
								
								.github/e2e/nexus/install.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										93
									
								
								.github/e2e/nexus/install.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @ -0,0 +1,93 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  | set -eu | ||||||
|  | 
 | ||||||
|  | SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) | ||||||
|  | 
 | ||||||
|  | : "${NEXUS_VERSION:=3.47.1}" | ||||||
|  | : "${NEXUS_HOST:=localhost}" | ||||||
|  | : "${NEXUS_PORT:=8081}" | ||||||
|  | : "${NEXUS_REGISTRY_PORT:=8082}" | ||||||
|  | : "${REGISTRY_USER:=admin}" | ||||||
|  | : "${REGISTRY_PASSWORD:=Nexus12345}" | ||||||
|  | 
 | ||||||
|  | : "${NEXUS_REPO:=test-docker-action}" | ||||||
|  | 
 | ||||||
|  | createrepo_post_data() { | ||||||
|  |   cat <<EOF | ||||||
|  | { | ||||||
|  |   "name": "${NEXUS_REPO}", | ||||||
|  |   "online": true, | ||||||
|  |   "storage": { | ||||||
|  |     "blobStoreName": "default", | ||||||
|  |     "strictContentTypeValidation": true, | ||||||
|  |     "writePolicy": "ALLOW" | ||||||
|  |   }, | ||||||
|  |   "docker": { | ||||||
|  |     "v1Enabled": false, | ||||||
|  |     "forceBasicAuth": true, | ||||||
|  |     "httpPort": ${NEXUS_REGISTRY_PORT}, | ||||||
|  |     "httpsPort": null, | ||||||
|  |     "subdomain": null | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | EOF | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export NEXUS_VERSION | ||||||
|  | 
 | ||||||
|  | mkdir -p /tmp/nexus/data | ||||||
|  | chown 200:200 /tmp/nexus/data | ||||||
|  | cp "${SCRIPT_DIR}/docker-compose.yml" /tmp/nexus/docker-compose.yml | ||||||
|  | 
 | ||||||
|  | echo "::group::Pulling Nexus $NEXUS_VERSION" | ||||||
|  | ( | ||||||
|  |   cd /tmp/nexus | ||||||
|  |   set -x | ||||||
|  |   docker compose pull | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Compose config" | ||||||
|  | ( | ||||||
|  |   cd /tmp/nexus | ||||||
|  |   set -x | ||||||
|  |   docker compose config | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Running Nexus" | ||||||
|  | ( | ||||||
|  |   cd /tmp/nexus | ||||||
|  |   set -x | ||||||
|  |   docker compose up -d | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Running Nexus" | ||||||
|  | ( | ||||||
|  |   cd /tmp/nexus | ||||||
|  |   set -x | ||||||
|  |   docker compose up -d | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Waiting for Nexus to be ready" | ||||||
|  | until $(curl --output /dev/null --silent --head --fail "http://$NEXUS_HOST:$NEXUS_PORT"); do | ||||||
|  |   printf '.' | ||||||
|  |   sleep 5 | ||||||
|  | done | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Change user's password" | ||||||
|  | ( | ||||||
|  |   set -x | ||||||
|  |   curl --fail -v -k --max-time 10 -u "$REGISTRY_USER:$(cat /tmp/nexus/data/admin.password)" -X PUT -H 'Content-Type: text/plain' -d "$REGISTRY_PASSWORD" "http://$NEXUS_HOST:$NEXUS_PORT/service/rest/v1/security/users/$REGISTRY_USER/change-password" | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
|  | 
 | ||||||
|  | echo "::group::Create Docker repository" | ||||||
|  | ( | ||||||
|  |   set -x | ||||||
|  |   curl --fail -v -k --max-time 10 -u "$REGISTRY_USER:$REGISTRY_PASSWORD" -X POST -H 'Content-Type: application/json' -d "$(createrepo_post_data)" "http://$NEXUS_HOST:$NEXUS_PORT/service/rest/v1/repositories/docker/hosted" | ||||||
|  | ) | ||||||
|  | echo "::endgroup::" | ||||||
							
								
								
									
										5
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
								
							| @ -26,6 +26,7 @@ env: | |||||||
|   BUILDX_VERSION: latest |   BUILDX_VERSION: latest | ||||||
|   BUILDKIT_IMAGE: moby/buildkit:buildx-stable-1 |   BUILDKIT_IMAGE: moby/buildkit:buildx-stable-1 | ||||||
|   HARBOR_VERSION: v2.7.0 |   HARBOR_VERSION: v2.7.0 | ||||||
|  |   NEXUS_VERSION: 3.47.1 | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   build: |   build: | ||||||
| @ -101,6 +102,10 @@ jobs: | |||||||
|             name: Harbor |             name: Harbor | ||||||
|             id: harbor |             id: harbor | ||||||
|             type: local |             type: local | ||||||
|  |           - | ||||||
|  |             name: Nexus | ||||||
|  |             id: nexus | ||||||
|  |             type: local | ||||||
|     steps: |     steps: | ||||||
|       - |       - | ||||||
|         name: Checkout |         name: Checkout | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user