Skip to content

Commit 5a1cb63

Browse files
committed
Use packed Fable sources in package checks
1 parent 410cd7c commit 5a1cb63

2 files changed

Lines changed: 62 additions & 58 deletions

File tree

scripts/check-fable-package-compat.sh

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,48 @@ set -euo pipefail
44

55
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
66
out_dir="/tmp/codecmapper-fable-package-check"
7+
temp_project_dir="$repo_root/tests/.tmp-codecmapper-fable-package-tests"
8+
temp_package_dir="$temp_project_dir/package"
79
package_version="0.1.0-local-ci"
8-
package_feed="$repo_root/src/CodecMapper/bin/Release"
9-
package_project="$repo_root/tests/CodecMapper.FablePackageTests/CodecMapper.FablePackageTests.fsproj"
10-
package_project_backup="/tmp/codecmapper-fable-package-tests.fsproj.bak"
11-
package_nuget_config="$repo_root/tests/CodecMapper.FablePackageTests/NuGet.Config"
10+
nupkg_path="$repo_root/src/CodecMapper/bin/Release/CodecMapper.$package_version.nupkg"
1211

1312
cd "$repo_root"
1413

1514
cleanup() {
16-
rm -f "$package_nuget_config"
17-
18-
if [[ -f "$package_project_backup" ]]; then
19-
cp "$package_project_backup" "$package_project"
20-
rm -f "$package_project_backup"
21-
fi
15+
rm -rf "$temp_project_dir"
2216
}
2317

2418
trap cleanup EXIT
2519

26-
rm -rf "$out_dir"
20+
rm -rf "$out_dir" "$temp_project_dir"
2721
dotnet pack src/CodecMapper/CodecMapper.fsproj -p:Version="$package_version" --nologo -v minimal
2822

29-
cp "$package_project" "$package_project_backup"
30-
31-
sed \
32-
-e "s#Version=\"[^\"]*\"#Version=\"$package_version\"#" \
33-
-e '/<CodecMapperPackageVersion /d' \
34-
"$package_project_backup" \
35-
>"$package_project"
36-
37-
cat >"$package_nuget_config" <<EOF
38-
<?xml version="1.0" encoding="utf-8"?>
39-
<configuration>
40-
<packageSources>
41-
<clear />
42-
<add key="local" value="$package_feed" />
43-
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
44-
</packageSources>
45-
</configuration>
23+
mkdir -p "$temp_package_dir"
24+
unzip -q -o "$nupkg_path" -d "$temp_package_dir"
25+
cp tests/CodecMapper.FablePackageTests/Program.fs "$temp_project_dir/Program.fs"
26+
27+
cat >"$temp_project_dir/CodecMapper.FablePackageTests.fsproj" <<EOF
28+
<Project Sdk="Microsoft.NET.Sdk">
29+
30+
<PropertyGroup>
31+
<OutputType>Exe</OutputType>
32+
<TargetFramework>net10.0</TargetFramework>
33+
<IsPackable>false</IsPackable>
34+
</PropertyGroup>
35+
36+
<ItemGroup>
37+
<Compile Include="package/fable/Core.fs" />
38+
<Compile Include="package/fable/Schema.fs" />
39+
<Compile Include="package/fable/Json.fs" />
40+
<Compile Include="package/fable/JsonSchema.fs" />
41+
<Compile Include="package/fable/Xml.fs" />
42+
<Compile Include="package/fable/KeyValue.fs" />
43+
<Compile Include="package/fable/Yaml.fs" />
44+
<Compile Include="Program.fs" />
45+
</ItemGroup>
46+
47+
</Project>
4648
EOF
4749

48-
dotnet tool run fable -- tests/CodecMapper.FablePackageTests -o "$out_dir" --noRestore --silent
50+
dotnet tool run fable -- "$temp_project_dir" -o "$out_dir" --noRestore --silent
4951
node "$out_dir/Program.js"

scripts/check-fable5-package-compat.sh

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,51 @@ set -euo pipefail
55
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
66
tool_dir="/tmp/codecmapper-fable5-package-tool"
77
out_dir="/tmp/codecmapper-fable5-package-check"
8+
temp_project_dir="$repo_root/tests/.tmp-codecmapper-fable5-package-tests"
9+
temp_package_dir="$temp_project_dir/package"
810
dotnet_root="$(dirname "$(command -v dotnet)")"
911
package_version="0.1.0-local-ci"
10-
package_feed="$repo_root/src/CodecMapper/bin/Release"
11-
package_project="$repo_root/tests/CodecMapper.FablePackageTests/CodecMapper.FablePackageTests.fsproj"
12-
package_project_backup="/tmp/codecmapper-fable5-package-tests.fsproj.bak"
13-
package_nuget_config="$repo_root/tests/CodecMapper.FablePackageTests/NuGet.Config"
12+
nupkg_path="$repo_root/src/CodecMapper/bin/Release/CodecMapper.$package_version.nupkg"
1413

1514
cd "$repo_root"
1615

1716
cleanup() {
18-
rm -f "$package_nuget_config"
19-
20-
if [[ -f "$package_project_backup" ]]; then
21-
cp "$package_project_backup" "$package_project"
22-
rm -f "$package_project_backup"
23-
fi
17+
rm -rf "$temp_project_dir"
2418
}
2519

2620
trap cleanup EXIT
2721

28-
rm -rf "$tool_dir" "$out_dir"
22+
rm -rf "$tool_dir" "$out_dir" "$temp_project_dir"
2923
dotnet pack src/CodecMapper/CodecMapper.fsproj -p:Version="$package_version" --nologo -v minimal
3024
dotnet tool install fable --version 5.0.0-rc.2 --tool-path "$tool_dir"
3125

32-
cp "$package_project" "$package_project_backup"
33-
34-
sed \
35-
-e "s#Version=\"[^\"]*\"#Version=\"$package_version\"#" \
36-
-e '/<CodecMapperPackageVersion /d' \
37-
"$package_project_backup" \
38-
>"$package_project"
39-
40-
cat >"$package_nuget_config" <<EOF
41-
<?xml version="1.0" encoding="utf-8"?>
42-
<configuration>
43-
<packageSources>
44-
<clear />
45-
<add key="local" value="$package_feed" />
46-
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
47-
</packageSources>
48-
</configuration>
26+
mkdir -p "$temp_package_dir"
27+
unzip -q -o "$nupkg_path" -d "$temp_package_dir"
28+
cp tests/CodecMapper.FablePackageTests/Program.fs "$temp_project_dir/Program.fs"
29+
30+
cat >"$temp_project_dir/CodecMapper.FablePackageTests.fsproj" <<EOF
31+
<Project Sdk="Microsoft.NET.Sdk">
32+
33+
<PropertyGroup>
34+
<OutputType>Exe</OutputType>
35+
<TargetFramework>net10.0</TargetFramework>
36+
<IsPackable>false</IsPackable>
37+
</PropertyGroup>
38+
39+
<ItemGroup>
40+
<Compile Include="package/fable/Core.fs" />
41+
<Compile Include="package/fable/Schema.fs" />
42+
<Compile Include="package/fable/Json.fs" />
43+
<Compile Include="package/fable/JsonSchema.fs" />
44+
<Compile Include="package/fable/Xml.fs" />
45+
<Compile Include="package/fable/KeyValue.fs" />
46+
<Compile Include="package/fable/Yaml.fs" />
47+
<Compile Include="Program.fs" />
48+
</ItemGroup>
49+
50+
</Project>
4951
EOF
5052

5153
DOTNET_ROOT="$dotnet_root" PATH="$dotnet_root:$PATH" \
52-
"$tool_dir/fable" tests/CodecMapper.FablePackageTests -o "$out_dir" --noRestore --silent
54+
"$tool_dir/fable" "$temp_project_dir" -o "$out_dir" --noRestore --silent
5355
node "$out_dir/Program.js"

0 commit comments

Comments
 (0)