Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
dbf8861
Patching pre/post install/remove scripts from RPM task to packager eq…
Aug 11, 2018
ebc9045
updated to current (8 years old) file color scheme and classifying .N…
Aug 11, 2018
cfc1ea5
read metadata from RPM instead of guessing it. introducing Documentat…
Aug 12, 2018
f13682a
fix parameter bug in test RpmPackageCreatorTests.CreatePackageTest
Aug 12, 2018
8cb6b26
Merge pull request #63 from clemensv/issue62
qmfrederik Aug 13, 2018
1e758f1
Update Packaging.Targets.targets
darkneil14 Aug 30, 2018
fdc35b3
Merge pull request #66 from darkneil14/master
qmfrederik Aug 30, 2018
d80ddbd
Use NerdBank.GitVersioning to assign build numbers
qmfrederik Aug 30, 2018
693c8fa
Update AppVeyor file to use NB.GV-produced assets
qmfrederik Aug 30, 2018
fc8c949
Don't start branch builds if a PR is active
qmfrederik Aug 30, 2018
b2b0de7
Merge pull request #67 from qmfrederik/fixes/nb.gv
qmfrederik Aug 30, 2018
c19298e
Merge pull request #68 from qmfrederik/skip-branch-with-pr
qmfrederik Aug 30, 2018
333273c
Add Travis CI build (#69)
qmfrederik Aug 30, 2018
85e3bb2
Release from master
qmfrederik Aug 31, 2018
614bdbf
Move the demo project to demo/aspnetcore, so we can have multiple dem…
qmfrederik Aug 31, 2018
114f34c
Use the latest version of dotnet-packaging in the demo projects
qmfrederik Aug 31, 2018
bba3266
Use Release config
qmfrederik Aug 31, 2018
667f91d
Run dotnet deb, dotnet rpm as part of the build
qmfrederik Aug 31, 2018
5214cc2
Merge pull request #72 from qmfrederik/fixes/ci-run
qmfrederik Aug 31, 2018
85cc823
Merge pull request #71 from qmfrederik/fixes/release-master
qmfrederik Aug 31, 2018
2f06734
Bump libicu versions to add support for Ubuntu 18.04
qmfrederik Aug 31, 2018
34844e8
Merge pull request #73 from qmfrederik/fixes/ubuntu-18.04
qmfrederik Aug 31, 2018
2a612e2
docker test updates
Aug 28, 2018
2030f61
docker tests
Aug 29, 2018
7e9d088
only build the images branch from root
Aug 29, 2018
4de2cf5
call tests
Aug 29, 2018
a0f9d7b
Move demo projects to demo/
qmfrederik Aug 31, 2018
c27b07f
Install Debian 8 package in a Docker container
qmfrederik Aug 31, 2018
375b24d
Run tests on CentOS 7
qmfrederik Aug 31, 2018
11271fa
Disable Docker on AppVeyor as Linux containers on Windows are availab…
qmfrederik Aug 31, 2018
a0bef75
Add tests for Ubuntu 18.04
qmfrederik Aug 31, 2018
2d9e358
Add Ubuntu 16.04
qmfrederik Aug 31, 2018
b2d9526
Add OpenSUSE 42.3
qmfrederik Aug 31, 2018
c73b8b2
Add Oracle Linux & Fedora tests
qmfrederik Aug 31, 2018
a482d7e
Remove test/ directory, everything has been moved to demo/
qmfrederik Aug 31, 2018
76d933e
Don't run on OpenSUSE for nwo
qmfrederik Aug 31, 2018
0bffc23
fix typo
qmfrederik Aug 31, 2018
d74fdbb
Merge pull request #70 from qmfrederik/dockertest-2
qmfrederik Aug 31, 2018
c47ecd0
Only mark files in "/usr/share/doc" as documentation files
qmfrederik Aug 31, 2018
5e80a6f
Update Docker files with fixes for RPM packages
qmfrederik Aug 31, 2018
03a32b1
Skip distros for which we don't specify libicu dependencies
qmfrederik Aug 31, 2018
15a0059
Merge pull request #74 from qmfrederik/fixes/rpm-doc-files
qmfrederik Aug 31, 2018
12207f6
Expand CI coverage
qmfrederik Aug 31, 2018
825031a
Require sudo
qmfrederik Sep 1, 2018
92133ef
Use parallel builds
qmfrederik Sep 1, 2018
8ed5793
Try to speed up builds
qmfrederik Sep 1, 2018
e32cbd4
Fix installation on OpenSUSE
qmfrederik Sep 1, 2018
d737c44
Merge pull request #75 from qmfrederik/fixes/ci-coverage
qmfrederik Sep 1, 2018
693e999
updated to current (8 years old) file color scheme and classifying .N…
Aug 11, 2018
dfbd117
read metadata from RPM instead of guessing it. introducing Documentat…
Aug 12, 2018
1c84878
Merge branch 'issue61' of https://github.com/clemensv/dotnet-packagin…
Sep 5, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,9 @@ obj/
.vs/
.idea/
.vagrant/
*.deb
*.rpm
*.msi
*.pkg
*.zip
*.tar.gz
35 changes: 35 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
language: csharp
mono: none
dotnet: 2.1.400

env:
- RUNTIME=centos.7-x64
- RUNTIME=ol.7-x64
- RUNTIME=fedora.27-x64
- RUNTIME=fedora.28-x64
- RUNTIME=debian.8-x64
- RUNTIME=debian.9-x64
- RUNTIME=ubuntu.14.04-x64
- RUNTIME=ubuntu.16.04-x64
- RUNTIME=ubuntu.18.04-x64
- RUNTIME=opensuse.42.3-x64

sudo: required

git:
depth: false

script:
- dotnet restore dotnet-packaging.sln
- dotnet pack dotnet-packaging.sln -c Release
- dotnet test Packaging.Targets.Tests/Packaging.Targets.Tests.csproj

- cd $TRAVIS_BUILD_DIR/demo/aspnetcore
- dotnet restore
- if [ "$RUNTIME" = "rhel.7-x64" ]; then dotnet rpm -c Release -r rhel.7-x64 -f netcoreapp2.0; fi
- if [ "$RUNTIME" = "ubuntu.16.04-x64" ]; then dotnet deb -c Release -r ubuntu.16.04-x64 -f netcoreapp2.0; fi

- cd $TRAVIS_BUILD_DIR/demo/cliscd/
- dotnet restore

- ./run-tests.sh -r $RUNTIME
28 changes: 28 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/dotnet-deb/bin/Debug/netcoreapp1.0/dotnet-deb.dll",
"args": [],
"cwd": "${workspaceFolder}/dotnet-deb",
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
"console": "internalConsole",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
,]
}
15 changes: 15 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/dotnet-deb/dotnet-deb.csproj"
],
"problemMatcher": "$msCompile"
}
]
}
9 changes: 5 additions & 4 deletions Packaging.Targets.Tests/ArchiveBuilderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Packaging.Targets.IO;
using System;
using System.Collections.Generic;
using System.IO;
using Xunit;

namespace Packaging.Targets.Tests
Expand Down Expand Up @@ -31,7 +32,7 @@ public void FromDirectoryTest()
Assert.Equal(LinuxFileMode.S_IROTH | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IRUSR | LinuxFileMode.S_IFREG, readme.Mode);
Assert.Equal("root", readme.Owner);
Assert.False(readme.RemoveOnUninstall);
Assert.Equal("archive\\README.md", readme.SourceFilename);
Assert.Equal(Path.Combine("archive", "README.md"), readme.SourceFilename);
Assert.Equal("/opt/demo/README.md", readme.TargetPath);
Assert.Equal("/opt/demo/README.md", readme.TargetPathWithFinalSlash);
Assert.Equal(ArchiveEntryType.None, readme.Type);
Expand All @@ -44,7 +45,7 @@ public void FromDirectoryTest()
Assert.Equal(LinuxFileMode.S_IROTH | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IRUSR | LinuxFileMode.S_IFREG, script.Mode);
Assert.Equal("root", script.Owner);
Assert.False(script.RemoveOnUninstall);
Assert.Equal("archive\\script.sh", script.SourceFilename);
Assert.Equal(Path.Combine("archive", "script.sh"), script.SourceFilename);
Assert.Equal("/opt/demo/script.sh", script.TargetPath);
Assert.Equal("/opt/demo/script.sh", script.TargetPathWithFinalSlash);
Assert.Equal(ArchiveEntryType.None, script.Type);
Expand Down Expand Up @@ -79,7 +80,7 @@ public void FromDirectoryWithMetadataTest()
Assert.Equal(LinuxFileMode.S_IROTH | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IRUSR | LinuxFileMode.S_IFREG, readme.Mode);
Assert.Equal("root", readme.Owner);
Assert.False(readme.RemoveOnUninstall);
Assert.Equal("archive\\README.md", readme.SourceFilename);
Assert.Equal(Path.Combine("archive", "README.md"), readme.SourceFilename);
Assert.Equal("/opt/demo/README.md", readme.TargetPath);
Assert.Equal("/opt/demo/README.md", readme.TargetPathWithFinalSlash);
Assert.Equal(ArchiveEntryType.None, readme.Type);
Expand All @@ -94,7 +95,7 @@ public void FromDirectoryWithMetadataTest()
Assert.Equal(LinuxFileMode.S_IXOTH | LinuxFileMode.S_IROTH | LinuxFileMode.S_IXGRP | LinuxFileMode.S_IRGRP | LinuxFileMode.S_IXUSR | LinuxFileMode.S_IWUSR | LinuxFileMode.S_IRUSR, script.Mode);
Assert.Equal("root", script.Owner);
Assert.False(script.RemoveOnUninstall);
Assert.Equal("archive\\script.sh", script.SourceFilename);
Assert.Equal(Path.Combine("archive", "script.sh"), script.SourceFilename);
Assert.Equal("/bin/script.sh", script.TargetPath);
Assert.Equal("/bin/script.sh", script.TargetPathWithFinalSlash);
Assert.Equal(ArchiveEntryType.None, script.Type);
Expand Down
4 changes: 2 additions & 2 deletions Packaging.Targets.Tests/Rpm/RpmMetadataTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void SetFilesTest()
{
ArchiveBuilder builder = new ArchiveBuilder(new PlistFileAnalyzer());
RpmPackageCreator creator = new RpmPackageCreator(new PlistFileAnalyzer());
var entries = builder.FromCpio(cpio);
var entries = builder.FromCpio(originalPackage, cpio);
var files = creator.CreateFiles(entries);

var metadata = new PublicRpmMetadata(package);
Expand Down Expand Up @@ -186,7 +186,7 @@ public void CreatePackageMetadata()
{
ArchiveBuilder builder = new ArchiveBuilder(new PlistFileAnalyzer());
RpmPackageCreator creator = new RpmPackageCreator(new PlistFileAnalyzer());
var entries = builder.FromCpio(cpio);
var entries = builder.FromCpio(originalPackage, cpio);
var files = creator.CreateFiles(entries);

// Core routine to populate files and dependencies
Expand Down
46 changes: 35 additions & 11 deletions Packaging.Targets.Tests/Rpm/RpmPackageCreatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void CreateFiles(string rpm, string analyzerName)

RpmPackageCreator creator = new RpmPackageCreator(analyzer);
ArchiveBuilder builder = new ArchiveBuilder(analyzer);
var entries = builder.FromCpio(cpio);
var entries = builder.FromCpio(originalPackage, cpio);
var files = creator.CreateFiles(entries);

var originalMetadata = new RpmMetadata(originalPackage);
Expand Down Expand Up @@ -98,7 +98,7 @@ public void CalculateOffsetTest()
{
ArchiveBuilder builder = new ArchiveBuilder(new PlistFileAnalyzer());
RpmPackageCreator creator = new RpmPackageCreator(new PlistFileAnalyzer());
var entries = builder.FromCpio(cpio);
var entries = builder.FromCpio(originalPackage, cpio);
var files = creator.CreateFiles(entries);

// Core routine to populate files and dependencies
Expand Down Expand Up @@ -151,7 +151,7 @@ public void CalculateSignatureTest()
using (var cpio = new CpioFile(payloadStream, false))
{
ArchiveBuilder builder = new ArchiveBuilder(new PlistFileAnalyzer());
var entries = builder.FromCpio(cpio);
var entries = builder.FromCpio(originalPackage, cpio);
files = creator.CreateFiles(entries);
}

Expand Down Expand Up @@ -242,8 +242,16 @@ public void CreatePackageTest()
var secretKeyRing = krgen.GenerateSecretKeyRing();
var privateKey = secretKeyRing.GetSecretKey().ExtractPrivateKey("dotnet".ToCharArray());
var publicKey = secretKeyRing.GetPublicKey();

using (Stream stream = File.OpenRead(@"Rpm/libplist-2.0.1.151-1.1.x86_64.rpm"))
const string preInstScript = "echo preinst\n";
const string postInstScript = "echo postinst\n";
const string preRemoveScript = "echo preremove\n";
const string postRemoveScript = "echo postremove\n";
const string nameString = "libplist";
const string versionString = "2.0.1.151";
const string releaseString = "1.1";
const string archString = "x86_64";

using (Stream stream = File.OpenRead($"Rpm/{nameString}-{versionString}-{releaseString}.{archString}.rpm"))
using (var targetStream = File.Open(@"RpmPackageCreatorTests_CreateTest.rpm", FileMode.Create, FileAccess.ReadWrite, FileShare.None))
{
var originalPackage = RpmPackageReader.Read(stream);
Expand All @@ -253,7 +261,7 @@ public void CreatePackageTest()
using (CpioFile cpio = new CpioFile(decompressedPayloadStream, leaveOpen: false))
{
ArchiveBuilder builder = new ArchiveBuilder();
archive = builder.FromCpio(cpio);
archive = builder.FromCpio(originalPackage, cpio);
}

using (var decompressedPayloadStream = RpmPayloadReader.GetDecompressedPayloadStream(originalPackage))
Expand All @@ -266,15 +274,19 @@ public void CreatePackageTest()
creator.CreatePackage(
archive,
payloadStream,
"libplist",
"2.0.1.151",
"x86_64",
"1.1",
nameString,
versionString,
archString,
releaseString,
false,
null,
false,
null,
null,
preInstScript,
postInstScript,
preRemoveScript,
postRemoveScript,
null,
(metadata) => PlistMetadata.ApplyDefaultMetadata(metadata),
privateKey,
Expand All @@ -287,6 +299,14 @@ public void CreatePackageTest()
var package = RpmPackageReader.Read(targetStream);

var metadata = new RpmMetadata(package);
Assert.Equal(metadata.Version, versionString);
Assert.Equal(metadata.Name, nameString);
Assert.Equal(metadata.Arch, archString);
Assert.Equal(metadata.Release, releaseString);
Assert.StartsWith(preInstScript, metadata.PreIn);
Assert.StartsWith(postInstScript, metadata.PostIn);
Assert.StartsWith(preRemoveScript, metadata.PreUn);
Assert.StartsWith(postRemoveScript, metadata.PostUn);
var signature = new RpmSignature(package);

Assert.True(signature.Verify(publicKey));
Expand Down Expand Up @@ -318,7 +338,7 @@ public void CreatePackageBinaryTest()
using (CpioFile cpio = new CpioFile(decompressedPayloadStream, leaveOpen: false))
{
ArchiveBuilder builder = new ArchiveBuilder();
archive = builder.FromCpio(cpio);
archive = builder.FromCpio(originalPackage, cpio);
}

using (var compressedPayloadStream = RpmPayloadReader.GetCompressedPayloadStream(originalPackage))
Expand All @@ -337,6 +357,10 @@ public void CreatePackageBinaryTest()
null,
null,
null,
null,
null,
null,
null,
(metadata) => PlistMetadata.ApplyDefaultMetadata(metadata),
signer,
targetStream,
Expand Down
Loading