Preserve local macOS client state during installs
This commit is contained in:
@@ -260,7 +260,11 @@ copy_source() {
|
|||||||
[ -f "$source_dir/docker-compose.client.yml" ] || die "invalid Harbor source archive"
|
[ -f "$source_dir/docker-compose.client.yml" ] || die "invalid Harbor source archive"
|
||||||
log "installing files to $INSTALL_DIR"
|
log "installing files to $INSTALL_DIR"
|
||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
cp -R "$source_dir/." "$INSTALL_DIR/"
|
rsync -a --delete \
|
||||||
|
--exclude='.env' \
|
||||||
|
--exclude='.runtime' \
|
||||||
|
--exclude='.git' \
|
||||||
|
"$source_dir/" "$INSTALL_DIR/"
|
||||||
}
|
}
|
||||||
|
|
||||||
download_source() {
|
download_source() {
|
||||||
@@ -282,6 +286,7 @@ fi
|
|||||||
|
|
||||||
need docker
|
need docker
|
||||||
need curl
|
need curl
|
||||||
|
need rsync
|
||||||
need tar
|
need tar
|
||||||
|
|
||||||
docker compose version >/dev/null 2>&1 || die "Docker Compose plugin is required"
|
docker compose version >/dev/null 2>&1 || die "Docker Compose plugin is required"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const HARBOR_VERSIONS = Object.freeze({
|
export const HARBOR_VERSIONS = Object.freeze({
|
||||||
macClient: '0.21.2',
|
macClient: '0.21.3',
|
||||||
gatewayClient: '0.22.0',
|
gatewayClient: '0.22.0',
|
||||||
gatewayBackend: '0.22.3',
|
gatewayBackend: '0.22.3',
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -40,3 +40,12 @@ test('one-line installer extracts the archive and hands it to the macOS installe
|
|||||||
fs.rmSync(tmp, { recursive: true, force: true });
|
fs.rmSync(tmp, { recursive: true, force: true });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('macOS installer removes stale archive files without deleting local state', () => {
|
||||||
|
const installer = fs.readFileSync(path.join(root, 'scripts', 'install-macos-client.sh'), 'utf8');
|
||||||
|
|
||||||
|
assert.match(installer, /rsync -a --delete/);
|
||||||
|
assert.match(installer, /--exclude='\.env'/);
|
||||||
|
assert.match(installer, /--exclude='\.runtime'/);
|
||||||
|
assert.match(installer, /--exclude='\.git'/);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user