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