Commit graph

190 commits

Author SHA1 Message Date
Travis Plunk baa0a28a21 Remove exclusion for hang and add context exception for remaining instances (#5595) 2017-12-01 09:47:18 -08:00
Chunqing Chen 52df947080 Fix xunnit test for PS (#4780)
* Initial work to enable xunit

* Moved AssemblyOriginatorKeyFile to csharp.tests.csproj

* Native binary has dylib extension on macOS
2017-11-30 14:44:41 -08:00
Travis Plunk 9bedef0c62
Update docker file for windows build (#5459)
reducing the base image size should make the build a little faster
Also, remove the duplicate upload of a file
2017-11-28 15:36:25 -08:00
Steve Lee db0498da6b remove signed folder in zip during packaging (#5527) 2017-11-27 17:26:51 -08:00
bergmeister 71e588d223 Disambiguate icon for daily builds on Windows (#5467)
* Disambiguate icon for daily builds on Windows.
Some code had to be borrowed from build.psm1 because this script has to be self contained in case it gets executed by only downloading this file via the published download link https://twitter.com/Steve_MSFT/status/930585082451992576
2017-11-22 14:14:32 +04:00
Travis Plunk e1a57e5194
Update target tag for master CI to 6.1.0-preview.1 (#5513)
* use metadata JSON to create release tag in CI
2017-11-21 13:51:10 -08:00
Travis Plunk cc24b88a1e Fix mac packaging (#5496) 2017-11-20 16:00:22 -08:00
bergmeister 5702081ae6 Change synopsis of install-powershell.ps1 to reflect that it works cross-platform (#5465) 2017-11-20 12:28:17 -08:00
Travis Plunk e2c7e02099 Fix semantic version parsing (#5480) 2017-11-16 10:17:31 -08:00
Travis Plunk 35a46a75bc
add mac release build scripts (#5474) 2017-11-15 17:10:19 -08:00
Dongbo Wang 97511a9e2a
Fix the regex for '-ReleaseTag' (#5473) 2017-11-15 16:55:13 -08:00
Dongbo Wang 5f72faab54
Change to query for metadata from our file (#5468) 2017-11-15 13:54:30 -08:00
Travis Plunk 4007470403
Package signing (#5463)
* add template xml for package signing

* Add script to generate package signing XML

* remove uploading artifact, it always fails.

* Allow the XML to be updated to be specified
2017-11-15 13:03:32 -08:00
Darwin 0f41c185d7 Add support for installing powershell on Amazon Linux (#5461)
- Support for Amazon Linux
- Ensure both tarball installs will reinstall/upgrade
- Clean up comments with incorrect urls
2017-11-15 09:51:52 -08:00
Steve Lee 83e1d64669 Enable install-powershell.ps1 to update the current running powershell (#5429)
1. Remove `[validate]` attribute from parameter so this script can be invoked directly from the web. This doesn't have any negative impact as the $Destination parameter will have a default value if null or empty.
2. Move removal of destination folder later as installing the package requires package management module and archive module (on Windows)
3. On Windows, because files have open handles when run from existing powershell-daily install, I rename the existing files and copy over the new ones.  User needs to exit and restart `pwsh` to take effect (similar to macOS/Linux where you have to exit and restart anyways)
2017-11-14 10:45:08 -08:00
Travis Plunk 1d64cad068
Signing fixes (#5439)
* Add two files that need to be signed
* make sure to set PSModuleRestore to true when expanding a signed build because we run PSModuleRestore at that point.
* suppress output of CmdLets which are noisy
2017-11-14 10:30:17 -08:00
Dongbo Wang da0b384b2a Try fixing the 'brew update' issue in bootstrap script (#5400)
* Try fixing the 'brew update' issue in bootstrap script

* Add a log message

* Add a comment
2017-11-13 12:21:53 -08:00
Travis Plunk 36fac11f29 Allow packaging from a zip package to allow for signing (#5418)
- Include a serialized version of PSOptions in an includesymbols zip
- Add a function which will create a zip package from the expanded includesymbols zip and a folder of signed files
- Add a function to restore an includesymbols zip as a build and populated PSOptions with the options
2017-11-13 10:10:51 -08:00
Dongbo Wang 2f399e233c
Enhance 'install-powershell.ps1' to work on Linux/MacOS (#5411)
Enhance 'install-powershell.ps1' to work on Linux and macOS too. A user can install release version or daily powershell core on Linux and macOS.
When `-AddToPath` is specified:
- On Windows, add the absolute destination path to the 'User' scope environment variable 'Path';
- On Linux, make the symlink '/usr/bin/pwsh' points to "$Destination/pwsh";
- On MacOS, make the symlink '/usr/local/bin/pwsh' points to "$Destination/pwsh".
2017-11-10 17:54:24 -08:00
Steve Lee 54f34a0bac Support '[package]' tag in PR CI and fix nightly build on macOS (#5410)
- Support '[package]' tag in PR CI to validate packaging changes in PR CI runs.
  When using '[package]' tag, regular CI tests will run and packaging steps will also run.
- Fix nightly build on macOS.
2017-11-10 17:28:55 -08:00
Travis Plunk b1d312317c
make name a dynamic parameter (#5415) 2017-11-10 15:28:38 -08:00
Dongbo Wang affcc40a52
Add 'install-powershell.ps1' to install powershell core on windows (#5383)
- Add install-powershell.ps1 to install powershell core packages on windows.
- Update Start-PSBootStrap to check and install the latest PSCore package on Windows.
2017-11-10 08:28:02 -08:00
Dongbo Wang 55f6827aa9
Revive 'download.sh' and make it redirect to 'install-powershell.sh' (#5386) 2017-11-09 22:58:53 -08:00
Travis Plunk 1a5134f9e4
Add signing manifest and script to update it with production values (#5397)
* Add signing configuration file
* add updatesigning.ps1
2017-11-09 17:47:03 -08:00
Steve Lee 8b42e1748e Add ability to produce tar.gz pkg for Raspbian (#5387) 2017-11-09 10:48:55 -08:00
Dan Travison 3bfae4f1dd Rename/Update PowerShell ETW manifest to remove the Windows PowerShell dependency. (#5360)
- Build PowerShell.Core.Instrumentation.dll - Resource-only binary for the ETW resources.
- Create a registration script for registering/unregistering the ETW provider.
2017-11-09 09:23:00 -08:00
Travis Plunk ab24ac2b8a Use simplified names for compliance folders (#5388) 2017-11-09 07:29:02 -08:00
Travis Plunk 610c70d952 set expected binaries and variable name for folder for symbols build (#5357) 2017-11-07 12:09:34 -08:00
Greg Zimmerman a674c518b1 Enable macOS launcher (#5291) 2017-11-06 10:44:20 -08:00
Dan Travison 2670917981 Redirect ETW logging to Syslog on Linux (#5144)
This PR is divided into the following areas:
1. Add/Rename the PowerShell/Windows ETW manifest to the repo and change both the provider id (guid) and name. See #4939.
The manifest is at tools/resxgen/PowerShell-Core-Instrumentation.man

2. Generate a resx file containing the string resources needed for logging ETW events to syslog.
This is accomplished by tools\resxgen\resxgen.psm1 and resxgen.ps1. The tool generates two files

A resx file containing string resources for each message string from the manifest. This is generated in the System.Management.Automation\gen directory.
A C# class (EventResource) that provides the mapping between the integer event id and the associated string resource name. The file is generated in the System.Management.Automation\CoreCLR directory with a compile-time condition of UNIX
NOTE: The EventResource.cs class generated by resgen is explicitly ignored in the csproj file; it is not used.

3. SMA\utils\tracing\PSSysLogProvider.cs
Implements the abstract LogProvider class and is the syslog equivalent of PSEtwLogProvider. The class contains a number of logical methods for logging lifecycle, health, and normal events.

4. SMA\utils\tracing\SysLogProvider.cs
This is the Syslog equivalent of ETW's log provider class and implements a Log method versus ETW's EventWrite. It is also responsible for resolving event ids to resource names and performing the Syslog call. There is a large comment block in the class XML doc that describes the types of log output it produces.

5. SMA\utils\tracing\PSEtwLog.cs
PowerShell's current implementation is tightly coupled to this class; with code calling it directly for all events. To simplify integration of syslog, I updated the class to create an instance of PSSysLogProvider on Linux and removed the Linux-specific stub file.

6. SMA\engine\PropertyAccessor.cs
This class provides a wrapper around PowerShellProperties.json and has been extended to have Unix-specific assessors for configuring logging. Note that the file is expected to be in the $PSHOME directory to ensure SxS.

Currently, there are four configuration properties:

- LogIdentity - the string identifier for the source application. This defaults to 'powershell' and can be configured to enable distinguishing between side-by-side installations.
- LogLevel - configures the tracing level (log level). Informational is the defauilt.
- LogChannels - used to enable operational and analytic logging. Operational is the default.
- LogKeywords - used to configure enabling tracing by keyword. All keywords other than `UseAlwaysAnalytic` are enabled by default.

NOTE: This will likely change. PowerShell sometimes confuses the analytic channel with this keyword and sends logging to the wrong channel. Once this is cleared up, `UseAlwaysAnalytic` and `UseAlwaysOperational` keywords will likely be removed.

Additional Notes:

1. The current implementation writes directly to syslog and writing to a separate log file is still pending.
2. The generated class and resx are not part of the build; instead, it is expected that Resxgen should be run when events are added to the manifest. To fully automate the process, resxgen will need to be updated to generate the other dependent enums such as 'PSChannel', 'PSEventId', 'PSTask', 'PSOpcode', etc. You will see parsing logic in resxgen.psm1 to prepare for that but it is not enabled at this point.
4. Documentation is pending that documents the format of the syslog output as well as associated configuration.
5. As mentioned at the start, tests are pending
2017-11-06 08:32:29 -08:00
Steve Lee 0557f2df72 add Uniform Type Identifier conforming with Apple standards using a reverse dns style prefix (#5323) 2017-11-04 17:02:50 -07:00
Travis Plunk cbe6b88df2
Include symbols folder an embedded zip when packaging symbols (#5333) 2017-11-03 14:49:15 -07:00
Dongbo Wang da5a1a6015
Update 'installpsh-suse.sh' and remove 'download.sh' (#5309)
- Update `installpsh-suse.sh` to work with the .tar.gz binary archive.
- Remove `download.sh` as it's not used anywhere now. (checked with PowerShellGet and OneGet, they are using a local copy of download.sh).
2017-11-03 08:47:26 -07:00
Dongbo Wang 3771c88da3
Always run test with crossgen'ed assemblies in CI (#5315) 2017-11-02 18:03:34 -07:00
Travis Plunk 74ebde9d3c
Release build fixes (#5317)
small fixes found while doing current work item

-replace expects a regex when I wanted to do a literal replace.
Have Sync-PSTags fix any issues it find
2017-11-02 16:05:56 -07:00
Travis Plunk 98244a89f9
remove sync-tags for Linux. It is failing. (#5299) 2017-11-02 15:00:18 -07:00
Travis Plunk 8fcdc01827
Refactor for signing (#5300) 2017-11-02 13:52:17 -07:00
Travis Plunk 9c75cea9ff
use context rules instead of file or file and context rules because path to file can vary. (#5297) 2017-11-01 14:35:58 -07:00
Aditya Patwardhan a8008f8cbb Revert "Add macos launcher. (#5138)" (#5259) 2017-10-30 15:38:14 -07:00
Travis Plunk 8702dea03b Sync tags in release build so that shallow cloning can be enabled. (#5248) 2017-10-30 10:06:47 -07:00
Travis Plunk ce03a6c2be
Make sure web hook gets called (#5249)
if something goes wrong during the build, we might exit and not update the badge or fire the webhook.

Enable the after_success and after_failure stages of the travis-ci build so we can have a better chance of getting these done.
2017-10-27 11:35:40 -07:00
Steve Lee 4bc52d2358 Use consistent '(c)' for copyright symbol (#5210)
- Remove the year about copyright
- Fix casing of `All rights reserved`
- Replace Unicode characters representing single quote with a single quote
2017-10-26 14:12:19 -07:00
Travis Plunk 00dde3d8f2 Add term rules (#5213)
* Add Terms Rules

* remove offensive term

* Add code owner for compliance files
2017-10-25 15:08:52 -07:00
Dongbo Wang bfce69ed83 Update install/build scripts and dockerfiles (#5222) 2017-10-25 08:25:35 -07:00
Aditya Patwardhan d0806811e4 Update docs and scripts for beta.9 (#5217) 2017-10-24 16:28:22 -07:00
Dongbo Wang e4d88aaa9d Fix appimage package name to be lower case 'powershell-..' (#5206) 2017-10-23 21:40:39 -07:00
Travis Plunk 8051977ef5 Log sending daily web hook. (#5203)
Make sure we count xunit tests failures as a CI failure.
2017-10-23 13:58:03 -07:00
Travis Plunk 14af252878 Update packaging to only package PowerShell binaries when packaging symbols (#5145)
* Update packaging script to only package PowerShell binaries when creating symbols zip.  disallow all other package types for symbols

* remove instrumentation used for debugging during development

* Add error action silently continue to cleanup for reliability.

* Add comment about why folder is being deleted.
2017-10-23 12:30:25 -07:00
Travis Plunk 13eb283560 Add code to send WebHook for Travis-CI Daily Build (#5183) 2017-10-20 15:06:37 -07:00
Greg Zimmerman 5913069e58 Update powershell to pwsh. (#5174) 2017-10-19 15:09:57 -07:00