Skip to content

Commit 410cd7c

Browse files
committed
Stabilize Fable package restore on CI
1 parent d24da0f commit 410cd7c

3 files changed

Lines changed: 74 additions & 9 deletions

File tree

scripts/check-fable-package-compat.sh

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

55
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
66
out_dir="/tmp/codecmapper-fable-package-check"
7-
package_cache="$repo_root/tests/CodecMapper.FablePackageTests/.packages"
87
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"
912

1013
cd "$repo_root"
1114

12-
rm -rf "$out_dir" "$package_cache"
15+
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
22+
}
23+
24+
trap cleanup EXIT
25+
26+
rm -rf "$out_dir"
1327
dotnet pack src/CodecMapper/CodecMapper.fsproj -p:Version="$package_version" --nologo -v minimal
14-
CodecMapperPackageVersion="$package_version" \
15-
dotnet tool run fable -- tests/CodecMapper.FablePackageTests -o "$out_dir" --noRestore --silent
28+
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>
46+
EOF
47+
48+
dotnet tool run fable -- tests/CodecMapper.FablePackageTests -o "$out_dir" --noRestore --silent
1649
node "$out_dir/Program.js"

scripts/check-fable5-package-compat.sh

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,49 @@ 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-
package_cache="$repo_root/tests/CodecMapper.FablePackageTests/.packages"
98
dotnet_root="$(dirname "$(command -v dotnet)")"
109
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"
1114

1215
cd "$repo_root"
1316

14-
rm -rf "$tool_dir" "$out_dir" "$package_cache"
17+
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
24+
}
25+
26+
trap cleanup EXIT
27+
28+
rm -rf "$tool_dir" "$out_dir"
1529
dotnet pack src/CodecMapper/CodecMapper.fsproj -p:Version="$package_version" --nologo -v minimal
1630
dotnet tool install fable --version 5.0.0-rc.2 --tool-path "$tool_dir"
1731

18-
CodecMapperPackageVersion="$package_version" DOTNET_ROOT="$dotnet_root" PATH="$dotnet_root:$PATH" \
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>
49+
EOF
50+
51+
DOTNET_ROOT="$dotnet_root" PATH="$dotnet_root:$PATH" \
1952
"$tool_dir/fable" tests/CodecMapper.FablePackageTests -o "$out_dir" --noRestore --silent
2053
node "$out_dir/Program.js"

tests/CodecMapper.FablePackageTests/CodecMapper.FablePackageTests.fsproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
<OutputType>Exe</OutputType>
55
<TargetFramework>net10.0</TargetFramework>
66
<IsPackable>false</IsPackable>
7-
<CodecMapperPackageVersion Condition="'$(CodecMapperPackageVersion)' == ''">0.1.0</CodecMapperPackageVersion>
87
<RestorePackagesPath>$(MSBuildThisFileDirectory).packages</RestorePackagesPath>
98
<RestoreAdditionalProjectSources>$(MSBuildThisFileDirectory)../../src/CodecMapper/bin/Release/</RestoreAdditionalProjectSources>
109
</PropertyGroup>
@@ -14,7 +13,7 @@
1413
</ItemGroup>
1514

1615
<ItemGroup>
17-
<PackageReference Include="CodecMapper" Version="$(CodecMapperPackageVersion)" />
16+
<PackageReference Include="CodecMapper" Version="0.1.0" GeneratePathProperty="true" />
1817
</ItemGroup>
1918

2019
</Project>

0 commit comments

Comments
 (0)