DEVTOOLS-185 Remplacer le json en dur des images resgen
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
gitea-openium/resgen.swift/pipeline/pr-master There was a failure building this commit

This commit is contained in:
Quentin Bandera 2024-04-19 12:17:01 +02:00
parent eed20367b9
commit c8cfe82109
5 changed files with 99 additions and 58 deletions

2
Jenkinsfile vendored
View File

@ -1,6 +1,6 @@
library "openiumpipeline" library "openiumpipeline"
env.DEVELOPER_DIR="/Applications/Xcode-15.0.1.app/Contents/Developer" env.DEVELOPER_DIR="/Applications/Xcode-15.3.0.app/Contents/Developer"
//env.SIMULATOR_DEVICE_TYPES="iPad--7th-generation-" //env.SIMULATOR_DEVICE_TYPES="iPad--7th-generation-"
env.IS_PACKAGE_SWIFT=1 env.IS_PACKAGE_SWIFT=1
env.TARGETS_MACOS=1 env.TARGETS_MACOS=1

View File

@ -119,7 +119,7 @@ class XcassetsGenerator {
} }
// Write Content.json // Write Content.json
let imagesetContentJson = parsedImage.contentJson guard let imagesetContentJson = parsedImage.contentJson else { return }
let contentJsonFilePath = "\(imagesetPath)/Contents.json" let contentJsonFilePath = "\(imagesetPath)/Contents.json"
let contentJsonFilePathURL = URL(fileURLWithPath: contentJsonFilePath) let contentJsonFilePathURL = URL(fileURLWithPath: contentJsonFilePath)

View File

@ -0,0 +1,36 @@
//
// ImageContent.swift
//
//
// Created by Quentin Bandera on 19/04/2024.
//
import Foundation
struct ImageContent: Codable, Equatable {
let images: [Image]
let info: Info
static func == (lhs: ImageContent, rhs: ImageContent) -> Bool {
let lhsImagesCount = lhs.images.count
let lhsImages = lhs.images.sorted(by: { $0.scale < $1.scale })
let lhsInfo = lhs.info
let rhsImagesCount = rhs.images.count
let rhsImages = rhs.images.sorted(by: { $0.scale < $1.scale })
let rhsInfo = rhs.info
return lhsImagesCount == rhsImagesCount && lhsImages == rhsImages && lhsInfo == rhsInfo
}
}
struct Image: Codable, Equatable {
let idiom: String
let scale: String
let filename: String
}
struct Info: Codable, Equatable {
let version: Int
let author: String
}

View File

@ -42,32 +42,39 @@ struct ParsedImage {
// MARK: - Assets // MARK: - Assets
var contentJson: String { var contentJson: String? {
""" let encoder = JSONEncoder()
{ encoder.outputFormatting = .prettyPrinted
"images" : [
{ guard let data = try? encoder.encode(imageContent) else { return nil }
"idiom" : "universal",
"scale" : "1x", return String(data: data, encoding: .utf8)
"filename" : "\(name).\(XcassetsGenerator.outputImageExtension)" }
},
{ var imageContent: ImageContent {
"idiom" : "universal", return ImageContent(
"scale" : "2x", images: [
"filename" : "\(name)@2x.\(XcassetsGenerator.outputImageExtension)" Image(
}, idiom: "universal",
{ scale: "1x",
"idiom" : "universal", filename: "\(name).\(XcassetsGenerator.outputImageExtension)"
"scale" : "3x", ),
"filename" : "\(name)@3x.\(XcassetsGenerator.outputImageExtension)" Image(
} idiom: "universal",
], scale: "2x",
"info" : { filename: "\(name)@2x.\(XcassetsGenerator.outputImageExtension)"
"version" : 1, ),
"author" : "ResgenSwift-Imagium" Image(
} idiom: "universal",
} scale: "3x",
""" filename: "\(name)@3x.\(XcassetsGenerator.outputImageExtension)"
)
],
info: Info(
version: 1,
author: "ResgenSwift-Imagium"
)
)
} }
// MARK: - Extension property // MARK: - Extension property

View File

@ -127,35 +127,33 @@ final class ParsedImageTests: XCTestCase {
height: 10) height: 10)
// When // When
let property = parsedImage.contentJson let property = parsedImage.imageContent
// Expect // Expect
let expect = """ let expect = ImageContent(
{ images: [
"images" : [ Image(
{ idiom: "universal",
"idiom" : "universal", scale: "1x",
"scale" : "1x", filename: "\(parsedImage.name).\(XcassetsGenerator.outputImageExtension)"
"filename" : "\(imageName).\(XcassetsGenerator.outputImageExtension)" ),
}, Image(
{ idiom: "universal",
"idiom" : "universal", scale: "2x",
"scale" : "2x", filename: "\(parsedImage.name)@2x.\(XcassetsGenerator.outputImageExtension)"
"filename" : "\(imageName)@2x.\(XcassetsGenerator.outputImageExtension)" ),
}, Image(
{ idiom: "universal",
"idiom" : "universal", scale: "3x",
"scale" : "3x", filename: "\(parsedImage.name)@3x.\(XcassetsGenerator.outputImageExtension)"
"filename" : "\(imageName)@3x.\(XcassetsGenerator.outputImageExtension)" )
} ],
], info: Info(
"info" : { version: 1,
"version" : 1, author: "ResgenSwift-Imagium"
"author" : "ResgenSwift-Imagium" )
} )
}
"""
XCTAssertEqual(property.adaptForXCTest(), expect.adaptForXCTest()) XCTAssertEqual(property, expect)
} }
} }