Commit graph

587 commits

Author SHA1 Message Date
Aditya Patwardhan 52546f57f2 Change the feed URL to feed name due to changes in AzDevOps (#8664) 2019-01-16 17:47:03 -08:00
Aditya Patwardhan f03cafbdd8 Build package build using ubuntu 18.04 image (#8666) 2019-01-16 15:10:39 -08:00
Sergey Vasin 6f6c286bca Fix a typo in packaging.psm1 (#8647) 2019-01-15 17:18:20 -08:00
Aditya Patwardhan be4b82c730
Add function to create a framework dependent package dotnet-sdk containers (#8644) 2019-01-15 16:28:52 -08:00
Dongbo Wang ab75626f22 Fix installing fpm and ronn in macOS CI by avoid installing docs for them (#8656) 2019-01-15 14:23:59 -08:00
Aditya Patwardhan 94e37f673f Update README, metadata.json and changelog for release 6.1.2 (#8658)
Update README and metadata.json for release 6.1.2
2019-01-15 13:39:13 -08:00
xtqqczze 1a3aadfc4e Regularize redirection operator spacing in *.ps1 and *.ps1m (#8581)
Add space after redirection operator.
2019-01-03 12:59:14 +05:00
Greg Zimmerman 2a1b6ed9fe Add script to create icns files. (#7456)
Add script to generate macOS icon file. It does not attempt to integrate with the current build process as the macOS icon file is mostly static.

`libsvg` was chosen because of its low dependency count over other solutions that use backends like Chromium, PhontomJS, etc. ImageMagick's `convert` was tested but resulting PNGs where not satisfactory and would have required an overcomplicated script having to calculate the `density` argument.

* Has a dependency on librsvg (can be installed via Brew)
* Uses SVG file as input
* Can be integrated in later to build process if desired

Closes #7455
2019-01-02 12:11:47 -08:00
Steve Lee 725bfdaf88 Enable install of Preview MSI release side-by-side with Stable release (#8513)
When installing (or upgrading) Preview builds the component ids for the files are the same as the installed files from the stable MSI.  MSI sees this and assumes the file is already installed so skips installing files that haven't changed (been updated) which results in missing files in the preview install folder and pwsh fails to start.  Fix is to dynamically generate new component ids (and compoentrefs) in `files.wxs` using `_Preview` suffix and use that when building a preview package.

Tested manually.

cc @bergmeister if you can help validate different scenarios.

Fix https://github.com/PowerShell/PowerShell/issues/8289
2019-01-02 12:00:43 -08:00
Travis Plunk 20d9bd5f0a
pass nugetkey as param (#8461) 2018-12-13 17:23:41 -08:00
Travis Plunk 80a5be921d
Fix daily NuGet publishing (#8460)
Fix daily NuGet publishing

## PR Checklist

- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
    - Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] [Change is not breaking](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes)
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] This PR is ready to merge and is not [Work in Progress](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---work-in-progress).
    - If the PR is work in progress, please add the prefix `WIP:` to the beginning of the title and remove the prefix when the PR is ready.
- **User-facing changes**
    - [ ] Not Applicable
    - **OR**
    - [ ] User-facing [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
        - [ ] Issue filed - Issue link:
- **Testing - New and feature**
    - [ ] Not Applicable or can only be tested interactively
    - **OR**
    - [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting)
        - [ ] [Add `[feature]` if the change is significant or affects feature tests](https://github.com/PowerShell/PowerShell/blob/master/docs/testing-guidelines/testing-guidelines.md#requesting-additional-tests-for-a-pr)
2018-12-13 15:25:22 -08:00
Ilya a9f106da58 Move xUnit tests in new folder (#8356)
## Motivation

I have a PR where there are many new xUnit tests.
It would also be useful to create new xUnit tests for public APIs.
The number of xUnit tests will increase and their ordering is required.

## PR Summary

- Move C# xUnit tests in new folder. This allows to put new xUnit tests in directory structure in accordance with directory structure where cs files are.
- Use an xUnit TestCaseOrderer attribute to sequentially process tests for `powershell.config.json`.
- Update README.md
- A race condition was fixed which allowed  to run all XUnit tests in single batch job.
2018-12-13 14:22:07 -08:00
Darwin 5478cf6f66 support for linuxmint in installpsh-debian.sh (#8440)
Add #8437 - add linuxmint support
2018-12-11 14:40:38 -08:00
Steve Lee ac2b453ba7 Enable install-powershell.ps1 to use MSI (#8418) 2018-12-11 13:58:49 -08:00
Travis Plunk 59c514f7a7
Merge release-v6.2.0-preview.3 to master
Release v6.2.0 preview.3
2018-12-10 17:25:51 -08:00
Andrew a1299cd6d4 Adding yml for Windows Release builds (#8374) 2018-12-07 10:59:27 -08:00
Aditya Patwardhan 1d32d05157 Merged PR 6201: Update docs and csproj version
Update docs and csproj version
2018-12-07 18:24:07 +00:00
Travis Plunk 50890b5ae7 Update the name of the artifact to be unique per artifact (#8405) 2018-12-05 16:21:08 -08:00
Travis Plunk 5f7dde584f
Create unified release build for macOS and Linux packages (#8399)
Create unified release build for macOS and Linux packages
  - Also, updated the definition with latest definitions from the definitions in use.

I will work on these in future PRs:

- Add compliance Job
- Add macOS Signing step
- Merging Windows into the YAML
2018-12-05 14:47:54 -08:00
Alex Earl 74de391193 Add Linux ARM64 build support (#8016) 2018-12-05 10:55:09 -08:00
Christoph Bergmeister [MVP] 7c021e42e9 Update resgen, typegen to use .Net Core 2.1 (#8369) 2018-12-04 09:40:40 -08:00
Aditya Patwardhan 13cf8af667 Remove dependabot attribution and generate changelog sections using CL-* labels (#8386)
* Remove dependabot attribution from change log.
* Create sections in generated change log using the `CL-*` labels.
2018-12-03 14:34:29 -08:00
Dongbo Wang a11810bf33
Improve powershell startup time (#8341)
Major changes are as follows:
- Avoid `SecuritySupport.IsProductBinary` and unnecessary AMSI/suspicious code scan at startup time
   - Update `CompiledScriptBlockData.IsProductCode` to avoid unnecessary calls to `IsProductBinary`, which attempts to retrieve catalog signature of the target file.
   - Update `PerformSecurityChecks` to skip AMSI and suspicious code scan for the `.psd1` file that contains a safe `HashtableAst` only.
- Use customized `ReadOnlyBag` instead of `ImmutableHashSet` so that we can avoid loading the `System.Collections.Immutable.dll` completely.
- Replace `SHA1` with `CRC32` when generating module analysis cache file name
   - This remove the loading of `System.Security.Cryptography.Algorithms.dll` at startup
- Move `ConvertFrom-SddlString` to C# to remove the `Utility.psm1` file.
- Crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation
   - Even pwsh with crossgen assemblies spends a lot time in jitting at the startup, about `191.6ms` comparing with `24.7ms` for Windows PowerShell.
   - Jitting `Microsoft.ApplicationInsights.dll` takes about `51.6ms`.
   - By crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation, the jitting time drops to about `98.9ms`.
2018-12-02 12:52:39 -08:00
Aditya Patwardhan 9510fe56f5 Enable pipeline to sync PSGallery modules to AzArtifacts feed (#8316)
Compare the PowerShell modules dependencies on PowerShell Gallery and sync them to AzDevOps artifacts feed if a newer is available. The release builds pick up modules from AzDevOps feed.
2018-11-27 11:15:09 -08:00
Aditya Patwardhan b0daa1e724 Build Alpine tar.gz package in release builds (#8340)
Enable building tar.gz package for Alpine in release builds.

## PR Checklist

- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
    - Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] [Change is not breaking](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes)
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] This PR is ready to merge and is not [Work in Progress](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---work-in-progress).
    - If the PR is work in progress, please add the prefix `WIP:` to the beginning of the title and remove the prefix when the PR is ready.
- **User-facing changes**
    - [x] Not Applicable
    - **OR**
    - [ ] User-facing [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
        - [ ] Issue filed - Issue link:
- **Testing - New and feature**
    - [x] Not Applicable or can only be tested interactively
    - **OR**
    - [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting)
        - [ ] [Add `[feature]` if the change is significant or affects feature tests](https://github.com/PowerShell/PowerShell/blob/master/docs/testing-guidelines/testing-guidelines.md#requesting-additional-tests-for-a-pr)
2018-11-27 10:45:49 -08:00
Aditya Patwardhan 9fda1d0e4f
Publish test package to AppVeyor daily build (#8273) 2018-11-26 10:44:42 -08:00
Aditya Patwardhan 82091d6a45
Merge release-v6.2.0-preview.2 to master
Merge Release-v6.2.0-preview.2
2018-11-15 17:59:42 -08:00
Darwin a244c049e8 Make install-powershell.sh autodetect if it should use wget or curl (#8225)
install-powershell.sh now autodetects whether curl or wget is installed to download secondary script when it is not found locally.
2018-11-14 10:45:52 -08:00
Aditya Patwardhan 20497d19c2 Merged PR 5822: Update version for dependencies
Update version for dependencies
2018-11-14 01:56:28 +00:00
Travis Plunk ab809d95d9 Merged PR 5818: Port changes to allow AzDevOps NuGet feeds for Mac build
Port changes to allow AzDevOps NuGet feeds for Mac build
2018-11-14 01:04:39 +00:00
Travis Plunk 605994fbf4 Update metadata for 6.0.5 and 6.1.1 releases (#8259) 2018-11-13 15:34:53 -08:00
Travis Plunk 6698af81b7
Remove tilde from Linux preview packages (#8244)
Remove tilde from Linux preview packages.
  - Since we have a separate package for preview, we don't need a second indicator that these packages are preview.
  - Also, many system we use to release don't like the `~` character, which leads to manual interventions and errors.
2018-11-13 09:52:48 -08:00
Travis Plunk 655b8b614c Update SignType in signing.xml (#8223) 2018-11-12 10:31:45 -08:00
Paul Higinbotham d4bf5c87bc Fix tests running in Azure DevOps (#8220) 2018-11-09 15:11:02 -08:00
John Eismeier 4118fd2829 Propose fix some typos (#8206) 2018-11-09 08:33:24 +05:00
Aditya Patwardhan 94fde189a8 Fix script path for PowerShellPackageVsts.ps1 (#8189)
Fix mac build failure caused due to missing path.
2018-11-05 18:30:15 -08:00
Aditya Patwardhan a1585502bb Workaround for accessing Az Artifacts (#8188)
Added a workaround for accessing Az Artifacts feed from release build. 
  - Also, converted the `sh` task to PowerShell.
2018-11-05 18:02:10 -08:00
Aditya Patwardhan e6c3a38336 Update mac release build to create the nuget.config (#8185)
Update the build definition to create the nuget.config for the gallery modules.
2018-11-05 16:15:56 -08:00
Andrew Schwartzmeyer 54874180ce Remove build and doc references to Git submodules (#8177)
As of #7892, the PowerShell repository no longer uses Git submodules.
This is fantastic from a workflow standpoint, and so all the notes about
how to deal with submodules (and all the build steps explicitly
initializing and updating submodules) can be safely removed.
2018-11-05 10:39:29 -08:00
Andrew 3597d58432 Adding yml for Linux builds (#8168)
As part of improving the build process, the UI build pipeline for Linux Builds was converted to a yml-based pipeline.
2018-11-05 10:35:53 -08:00
Darwin ddaad12183 Update installpsh amazonlinux for container build (#7907) 2018-10-24 10:10:32 -07:00
Aditya Patwardhan 487073e57b
Add functionality to create a test package (#8087) 2018-10-19 14:56:58 -07:00
Aditya Patwardhan eb84c3d928 Merged PR 5379: Improve debugging of nuget package generation and add type to filtering 2018-10-16 20:23:57 +00:00
Aditya Patwardhan 1e31e707c8 Merged PR 5363: Version and doc changes
Version and doc changes
2018-10-15 20:24:00 +00:00
Aditya Patwardhan 5fcab21111 Remove PDBs from fxdependent pacakge (#8006) 2018-10-11 18:08:28 -07:00
Jellyfrog 8f6bbdf11e Add dependencies for SUSE (#7938) 2018-10-03 12:29:13 -07:00
Travis Plunk cd18af03bc
Revert "install-powershell.sh: Adding autodetection of curl / wget" due to regression from PR #7893 (#7918)
This reverts commit 4831a9fd63.
2018-10-01 18:52:27 -07:00
Darwin 4831a9fd63 install-powershell.sh: Adding autodetection of curl / wget (#7893)
install-powershell.sh now autodetects whether curl or wget is installed to download secondary script when it is not found locally.
2018-10-01 16:36:46 -07:00
Darwin 4dae2825e1 Ffixing syntax error in installpwsh-amazonlinux.sh (#7905)
* Fix syntax error for issue 7903. Typo come from #6849 

* Add identation after copyright message
2018-10-01 14:58:14 +05:00
Dongbo Wang 4926e15984
Make Start-PSPackage give better message about how to fix 'files.wxs' (#7841) 2018-09-25 09:53:42 -07:00
Aditya Patwardhan 8d4dd1e58f Remove packaging, building and installation scripts for Ubuntu 17.10 (#7773) 2018-09-17 14:48:23 -07:00
Aditya Patwardhan 0f81101f5c Merged PR 4985: Update metadata json for 6.1.0 release
Update metadata json for 6.1.0 release
2018-09-13 16:52:17 +00:00
Travis Plunk 15a3beb12d Make sure MSI build works when not preview (#7752)
The variable was set to empty (meaning to delete the variable) in the non-preview case and the build fails.
The fix avoids setting the variable to empty
2018-09-10 14:36:23 -07:00
Aditya Patwardhan 89278290d9 Build and package framework dependent package (#7729)
Add the functionality to build a framework dependent (shared framework) package for PowerShell.

The changes create two packages, one for Windows and other for Linux, due to #if code.
2018-09-10 12:55:06 -07:00
Travis Plunk 179ff6bc16 update metadata json in preparation for 6.1 release (#7741)
ReleaseTag is now StableReleaseTag
NextReleaseTag is not PreviewReleaseTag
Added ServicingReleaseTag for the N-1 Stable release
2018-09-10 11:18:50 -07:00
Aditya Patwardhan c41b19923e Fix docker image names for release build (#7726) 2018-09-06 18:00:46 -07:00
Travis Plunk 433a263a17 Add daily build non-windows platforms (#7683)
Add daily build non-windows platforms
  - Also, make the [Feature] tag work in VSTS for non-windows
  - Also, add a way to force feature tests to run
  - Also, fix an issue where `-workingdirectory` didn't work when running async
2018-09-06 18:00:46 -07:00
Travis Plunk 137d5de82b Add tests to report when package references are out of date (#7661)
Add tests to report when package references are out of date
  - Also, update the packaging script to generate updated `files.wxs`
2018-09-05 14:06:09 -07:00
Jason Shirk eae6d50d7a Add tools for PowerShell perf analysis (#7595) 2018-08-31 16:55:42 -07:00
Aditya Patwardhan aa6911d2d1 Update docker files to use MCR (#7656) 2018-08-31 16:55:42 -07:00
Dan Travison 1abf290f83 Add symbolic links for libssl and libcrypto to Debian 9 builds to make remoting work. (#7609)
On Debian 9, libmi cannot resolve libssl and libcrypto. This change adds symbolic links to packaging and build to the $PSHOME directory to resolve the issue.

The fix was verified interactively connecting to office 365, importing the session, and ensuring Get-MailBox and Get-User succeed.

Fix #7598
2018-08-24 15:20:22 -07:00
Travis Plunk 97d2e10c22
Merge release v6.1.0 rc.1 into master (#7608) 2018-08-22 12:06:00 -07:00
Aditya Patwardhan 087305334b
Update docs and metadata JSON (#7597) 2018-08-22 08:32:39 -07:00
Travis Plunk 9947985b87
Don't upload artifacts during pull request due to missing VSTS feature (#7588) 2018-08-21 16:55:18 -07:00
Aditya Patwardhan abb8f6bc80 Merged PR 4645: Fix SDK dependencies
Removed old dependencies from SMA and fixed the netcoreapp version.
2018-08-20 23:47:40 +00:00
Travis Plunk 40532d9a2e
Add VSTS CI for Windows (#7536)
- Add VSTS CI for Windows
    - Disable `Access-denied test for Get-Item C:\windows\appcompat\Programs\Install -ErrorAction Stop`, because the path does not always exist
        - https://github.com/PowerShell/PowerShell/issues/7553
    - Disable `Should give .sys file if the fullpath is specified with hidden and force parameter`, because pagefile.sys doesn't always exist and other files don't meet test's requirement.
        - https://github.com/PowerShell/PowerShell/issues/7554
    - Disable some `Test-Connection` tests for same reasons they failed on VSTS Linux
        - https://github.com/PowerShell/PowerShell/issues/7555
    - Disable `Test-FileCatalog should pass when catalog is in the same folder as files being tested`, because the CmdLet does not work in that scenario
         - Also, give details needed to investigate when the test fails
         - https://github.com/PowerShell/PowerShell/issues/7556
    - Update `appveyor.psm1` to work with VSTS
    - Update `HelpersRemoting.psm1` `New-RemoteSession` to work for CimSession (discovered an issue during the investigation)
    - Update `Test wildcard with drive relative directory path` to work when there are multiple drives
         - Disable on non-windows machines since the test is assuming drive letters
    - Update `New-CimSession` Tests to requireAdmin
         - Also, make sure session name is a string
    - Add functions to save and restore psoptions
    - update `.gitatttributes` so files clone like they do on appveyor
2018-08-17 22:06:51 -07:00
Travis Plunk 965552873c
Add Linux VSTS CI (#7527)
Update Start-PSPester and Start-PSxUnit to upload test results when running in VSTS
Disable tests which require non-root using when running as root
remove verifications in Test-Connection tests which verify buggy behavior
Skip tests which don't behave correctly in VSTS (due to running in a container?)
- Test-Connection - #7528
- Set-Date - #7529
2018-08-14 16:23:50 -07:00
Aditya Patwardhan f19c5dae1f Update NuGet package metadata (#7517) 2018-08-14 13:31:58 -07:00
Aditya Patwardhan b149e55e47
Update README and metadata.json for release v6.0.4 (#7497) 2018-08-10 15:40:13 -07:00
Travis Plunk b3d0913d74
Add CI definition for VSTS for macOS (#7490)
Add CI definition for VSTS for macOS
  - Add VSTS YAML for mac
  - Add a function to upload log files during a test on VSTS
2018-08-10 15:13:31 -07:00
Aditya Patwardhan f858e6d207 Add Microsoft.PowerShell.MarkdownRender to signing xml (#7472) 2018-08-07 11:47:36 -07:00
Greg Zimmerman f0ea0d380f Add preview icon to macOS launcher (#7448) 2018-08-05 11:00:39 -07:00
Dongbo Wang 25c127c3bc
Update CI scripts to support running tests for experimental features (#7419) 2018-08-03 11:20:14 -07:00
Aditya Patwardhan ac8ac4f25b Update NuGet packaging code for the new markdown assembly (#7431) 2018-08-02 23:00:54 -07:00
Steve Lee 1244278e7e [package] (#7345)
enable `pwsh-preview` to work on Windows
2018-07-25 13:32:10 -07:00
Aditya Patwardhan ed4a454ac4 Make MUSL NuGet package optional (#7316) 2018-07-20 11:08:25 -07:00
Greg Zimmerman d9c570a90d Fix macOS launcher app to allow release and preview versions. (#7306)
Fixes #7074. This PR allows concurrent versions of the macOS launcher app to exist. The application name will be either PowerShell or PowerShell-preview. It is now dynamically built and removed post fpm to avoid post build conflicts, see #5262 .
2018-07-20 10:53:09 -07:00
Dongbo Wang 08e3955231 Merged PR 3912: Update package versions for the new release 2018-07-19 22:15:44 +00:00
Travis Plunk b15709f444 update to latest package references, runtime framework, and SDK (#7272)
* update to latest package references

* update runtime framework

* update sdk

* automatically read NuGet package dependency info from csproj, where version info is fully qualified

* update file.wxs
2018-07-13 09:00:35 +05:00
Dongbo Wang d8d3344e98 Generate logging resources for Unix platforms 2018-07-06 13:28:20 -07:00
Travis Plunk c43ae6a110 Update 'releaseTag' in 'tools/metadata.json' (#7214) 2018-07-01 00:15:21 -07:00
Darwin 68ab1e09a6 Adding ability to install previews side-by-side with production releases (#7194)
-preview switch:
 - installs pwsh-preview packages when a package manager is being used.
 - uses link name pwsh-preview when tar ball install is being done
 - results in preview release being available for calling manually, but does not become systemwide version
Issue #7177
2018-06-28 11:46:58 -07:00
Steve Lee 167b51c4d6 update build and packaging modules for Alpine (#7149) 2018-06-27 15:30:38 -07:00
Steve Lee 7d72e38604 Updates to build for Alpine (#7139)
setdate.cpp was incorrectly assigning an int to a struct, fixed to initialize struct zero'd
update the typegen project in the bash script
added some help text at top of script for someone trying to build it
updated runtime to linux-musl-x64 instead of linux-x64 as Alpine distro uses the musl libc libraries instead of glibc which is used by most distros.
2018-06-25 14:51:30 -07:00
Darwin 53e6ec6ead install-powershell.sh filter prereleases (when available), params documentation (#6849)
Fixed #6815 by adding -allowprereleases parameter
Fixed #6405 by adding -allowprereleases parameter
Added parameters to documentation
Ready for prerelease repositories if Microsoft starts providing them
Added -skip-sudo-check for all distros
Fixed -interactivetesting should do nothing if -includeide was not used
2018-06-25 11:44:42 -07:00
Christoph Bergmeister 0487a1be2f Disambiguate icon on Windows for preview builds/installers to use Powershell_av_colors and make daily build use Powershell_avatar instead (#7086)
Closes #6317
Using the preview side-by-side with the RTM version is a pain/confusing due to the icons being the same.
This makes the preview build (i.e. the embedded icon in `pwsh.exe`) and MSI installer package (shortcut icon and context menu) use the [Powershell_av_colors icon](https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_av_colors.ico)
![image](https://user-images.githubusercontent.com/9250262/41491336-6e354936-70f0-11e8-965e-9b5e83be925b.png)

Therefore change the icon of the daily build (which used to use the Powershell_av_colors icon) to [Powershell_avatar](https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_avatar.ico)
![image](https://user-images.githubusercontent.com/9250262/41491346-80f890a0-70f0-11e8-9ab5-bb789454c134.png)
This means that people like me who have a shortcut to pwsh of the daily build pinned to the taskbar, probably need to re-pin it to the taskbar to receive all changes (otherwise one will only get the change in the icon of the window)

Note: The `Test-IsPreview` method had to be moved to the build module, which is OK because the packaging module has a declared dependency on the build module in its manifest.
2018-06-18 15:54:11 -07:00
Travis Plunk a5ec565cae
Enable NuGet Package Registration for compliance (#7053)
update the Windows release build script with the ability to capture all the project.assets.json files
add a Windows build to use the new feature in the release build script
update the Linux release build script with the ability to capture all the project.assets.json files
  -no new build is needed because signing is not currently automated
2018-06-15 11:07:27 -07:00
Travis Plunk 4342922268
make sure all references to the Pkg ID for previews packages is powershell-preview (#7066)
* make sure all references to the Pkg ID for previews are com.microsoft.powershell-preview
fixes #7065
2018-06-14 10:01:09 -07:00
Dongbo Wang 9804ae5f97
Merge the v6.1.0-preview.3 release branch to master (#7060) 2018-06-13 15:59:27 -07:00
Steve Lee 11a98c47fb Update third party notices (#7042)
Based on adding a reference to new assemblies, need to update ThirdPartyNotices.txt
Add ThirdPartyNotices to all packages
2018-06-12 10:58:05 -07:00
Christoph Bergmeister fbbca53f4c AppVeyor build matrix: more efficient build job split to reduce total time by another 5 minutes (#7021)
Closes #6944

Following PR #6945, further, reduce the total build time (without any disadvantages) by around 5 minutes by making sure there is a more even split between the 2 build jobs (the 2nd build job used to be much shorter).
Therefore this PR moves also the xUnit and Pester-Admin tests into the 2nd build job. If it is a daily/feature test commit, then the feature tests will also happen (only) in the 2nd build job. Because both jobs now run tests, the failfast option was removed. The final question from my side is whether running tests in 2 build jobs is OK for the daily build, which uploads code coverage results?

The time to wait for the AppVeyor build results is now 15 +/- 2 minutes, which is a huge improvement to what used to be around 28 minutes before the build matrix was introduced.
2018-06-11 14:18:51 -07:00
Travis Plunk f08a031f88 Merged PR 3079: Resolve Linux SxS conflicts and issues
Fix man page conflict between stable and preview Linux package
  - rename preview man page pwsh-preview
Fix /etc/shell entries not being created correctly for preview packages
2018-06-08 23:31:38 +00:00
Christoph Bergmeister fa544c33db Update links that contain 'en-us' culture (#7013)
Update links that contain 'en-us' culture to remove 'en-us' culture (if possible) and in some cases update to newer re-directed link to docs.microsoft.com
2018-06-08 10:49:03 +05:00
Travis Plunk 587ce9df81 fix mac package name 2018-06-06 13:28:34 -07:00
Travis Plunk 1aec38e14f make sure the path comparison is case insensitive. 2018-06-06 13:05:10 -07:00
Travis Plunk a3a5c6b774 remove PSReadline from signing 2018-06-06 11:18:20 -07:00
Travis Plunk 4192463ce6
fix issue with setReleaseTag using variable meant for non-release branches during a release (#7011)
There was a regression in the script where a variable meant for non-release branches was used during releases
2018-06-06 10:55:28 -07:00
Travis Plunk cecdd1ef80
make macOS package use a consistent path (#7006)
Address mac portions of PowerShell/PowerShell-RFC#115 (comment)

Make path when stable /usr/local/microsoft/powershell/6
when not stable (preview) /usr/local/microsoft/powershell/6-preview and symlink name pwsh-preview
allow side-by-side install of stable and preview
Also:

fix an issue where the utime work around for mac requires sudo
refactor some code into common functions
2018-06-06 10:28:22 -07:00
Robert Holt f559acfae1 Change packaging to differentiate only between major versions and previews (#6968)
Change the *nix packaging over with the following changes:

Package name (as used by e.g. apt):
Non-preview releases are namedpowershell
Preview releases are named powershell-preview
Installation path:
No longer looks like /opt/microsoft/powershell/6.1.0/ or /opt/microsoft/powershell/6.1.0-preview.1/
Non-previews go to a path like /opt/microsoft/powershell/6/
Previews go to a path like /opt/microsoft/powershell/6-preview/
Path to executable symlink:
Allows SxS with preview
Non-previews linked to /usr/bin/pwsh or /usr/local/bin/pwsh on macOS
Previews linked to /usr/bin/pwsh-preview or /usr/local/bin/pwsh-preview on macOS
Implements PowerShell/PowerShell-RFC#115 (comment)
2018-06-05 12:51:47 -07:00
Christoph Bergmeister 2ec3056f9e Use Appveyor matrix for faster PR builds (#6945)
Related: #6944

Reduce PR build time by 5 minutes by:

Having Packaging as a separate build job in a matrix -> runs in parallel in PR builds because the Microsoft account is a paid account that allows that (at no additional costs)
Not caching the dotnet folder anymore, which is too large and the overhead of zipping/unzipping/upload/download does not pay off (and fails in forked builds that are on a free AppVeyor account due to the size).
Setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to 1 because the initialization of the dotnet CLI cache (1 minute) does not pay off for the whole build.
The total build time of builds on a fork that is on a free AppVeyor account and therefore does not have parallelism, remains the same due to the time saving of redundant caching.

This is just a simple example of what we can easily achieve, we could continue this pattern and split the test runs as per the referenced issue to bring PR builds down to 10 minutes (but this will incur an increase for fork builds on free AppVeyor accounts)
2018-06-05 10:48:44 -07:00
Frederik Carlier d663b41bd5 Remove dependencies on libcurl, libunwind, matching the .NET Core behavior (#6964) 2018-06-04 13:15:27 -07:00
Steve Lee 5dc7a6cb07 Add Windows Compatibility Pack 2.0.0 to PS Core and adopt the official .NET Core 2.1 (#6958)
To support PowerShell modules built with .NET Windows Compatibility Pack, we decided that it was best to ship the WCP assemblies with PS Core. This also adds many new .NET APIs be default while only adding ~3.5 MB additional disk footprint (to a ~137 MB install currently).
Also update the build to adopt the official .NET Core 2.1.
2018-06-03 22:06:26 -07:00
Aditya Patwardhan 9f25daa059
Added logic to create signing XML for NuGet packages (#6921) 2018-05-22 15:34:21 -07:00
Darwin 862d99f595 adding path cleanup utility Reset-PWSHSystemPath.ps1 (#6892) 2018-05-22 12:58:51 -07:00
Travis Plunk 948532ac83
Don't cache files that change every build (#6901)
Don't cache files that change every build
Fixes #6894
2018-05-21 14:18:56 -07:00
Travis Plunk 731efc2369 Update signing xml based on new signing guidelines (#6893) 2018-05-18 11:55:51 -07:00
Klaudia Algiz 4070d51ee1 Add functions into build.psm1 to Save and Restore PSOptions between different sessions. (#6884)
Add functions into build.psm1 to Save and Restore PSOptions between different sessions.
2018-05-17 19:04:20 -07:00
Travis Plunk 472b5f7bd1
Enable full symbols for windows (#6853)
The main purpose of this was to enable full symbols for windows release build.
Also makes explicit where we are optimizing and where we are not optimizing due to https://github.com/dotnet/corefx/issues/29700
2018-05-14 15:01:44 -07:00
Robert Holt d96a321b49 Change packaging to support Ubuntu 17.10 and 18.04 (#6769)
Ubuntu 17.04 is EOL, so we need to update our packaging for Ubuntu 17.10. This updates the package script and build.psm1 to use 17.10 rather than 17.04.
2018-05-07 12:30:58 -07:00
Ilya 84344cbb32 Update PowerShell to build with .NET Core SDK 2.1.300-rc1-008662 (#6718)
* Build Update
- Change `TargetFramework` to `netcoreapp2.1` and removed unnecessary `RuntimeFrameworkVersion` from `PowerShell.Common.props`
- Update dotnet SDK to 2.1.300-rc1-008662
- Update `TypeGen` target in `Build.psm1` to work with 2.1
- Rename macOS runtime to `osx-x64` as the old build logic expects 10.12 and breaks running on 10.13 system.
- Remove `PackageReference` to `System.Memory` as it's part of dotnetcore 2.1
- Update search for `crossgen` executable to find the matching version

* Test Update
- Update test tools `WebListener` to latest `asp.net core`
- Marked `AuthHeader Redirect` tests as `Pending` due to change in CoreFX
2018-05-02 16:58:39 -07:00
Bryan Harmat 03b1f2bb99 tools: fix comparison to see if sudo test is needed in install-*.sh (#6771)
The comparison to test if we were using sudo was failing when running as root. We would then run -v, and get a bad error message. fixing the comparison.
2018-05-01 10:35:19 -07:00
Dongbo Wang 1f9e9d243d Update 'Get-ChangeLog' to make it more accurate (#6764)
Update 'Get-ChangeLog' to make it more accurate

Use "||" as the delimiter instead of "|", so it works for commit message that has the pipeline operator in it.
Handle merges that create a merge node in history.
Do not treat powershell team members as external contributors.
2018-04-30 13:00:28 -07:00
Aditya Patwardhan 64050a4687 Added Publish-NugetToMyGet to exported functions in psd1 (#6763)
Added the missing export for Publish-NugetToMyGet.
2018-04-27 16:26:13 -07:00
Dongbo Wang 95aa40ee64 Expose 'Expand-PSSignedBuild' from packaging module 2018-04-25 11:51:50 -07:00
Travis Plunk 438b0e545f
Add meta properties to mac VSTS yml (#6619)
Add meta properties to mac VSTS YAML
- Add a property to clean the build machine
- Add a property to set the format of the build name
- add a property to set which queue to run the build in
2018-04-13 15:04:22 -07:00
Steve Lee f760fde0b7 Remove support for file to opt-out of telemetry, only support env var (#6601)
Since a PR added support to opt out of telemetry via an environment variable, we can remove the,
always intended to be a temporary, solution of deleting a file to opt out of telemetry since the
environment variable can be defined at the system level and exist before even installing PowerShell Core.

Because the variable is defined as opt out, a value of true, yes, or 1 means no telemetry is sent.
2018-04-13 10:29:39 -07:00
Travis Plunk adce514a0c
fix error about setting readonly variable (#6617) 2018-04-11 11:01:38 -07:00
Travis Plunk aefc0d89b0
make gem use sudo for macOS (#6610)
gem install requires sudo on official macOS build VMs.
- make bootstrap use sudo for macOS
2018-04-10 12:18:11 -07:00
Darwin 46fa2260a8 Update installpsh-<distrofamily>.sh Installers to Handle "preview" in version number (#6573) 2018-04-06 15:23:11 -07:00
Travis Plunk 77f36498e6
Simplify the paths the MSI uses (#6442)
- Implementation of PowerShell/PowerShell-RFC#115 (If anything changes in the RFC, we will treat it as a bug, and fix it later)
- Update registry and directory paths to use 6 for the version for stable and 6-preview for a preview release
- Add checkbox to set path
- default checkbox to off for preview builds and on for stable builds
2018-04-02 10:47:29 -07:00
Travis Plunk 701b919345
MSI: add function to generate a MSP (#6445)
add a function to generate an MSP
2018-03-26 14:39:48 -07:00
Aditya Patwardhan 9bc81ad695
Update docs for v6.1.0-preview.1 release (#6481)
* Update docs

* Added the missing 'stable' label
2018-03-23 16:48:24 -07:00
Travis Plunk e5046baf9d Restore for official Linux arm builds (#6455) 2018-03-21 15:15:18 -07:00
Travis Plunk 1730d8c496
MSI: update path with proper value (#6441)
MSI: update path with proper value
- Add verification that path is updated
2018-03-21 12:23:24 -07:00
kasper3 271dd50df2 Add Alpine Linux support (#6367)
sys/sysctl header is not available in musl-libc based systems and system calls are available without any header inclusion. I have ported the cmake test from CoreFX repo (https://github.com/dotnet/corefx/blob/431475b8/src/Native/Unix/configure.cmake#L560).

Progress towards: #4605
2018-03-20 13:34:18 -07:00
Travis Plunk 5e1bb01cb3
migrate the mac offical binary build to VSTS mac hosted preview (#6363)
create a PowerShellPackage...ps1 that works with these VMs (vs our custom VM)
create a script to create the \powershell folder with correct permissions
a YML VSTS build definition
2018-03-19 15:56:43 -07:00
Dongbo Wang b49fb7f1b3
Update 'macos.md' and 'windows.md' with the version number '6.0.2' (#6416) 2018-03-19 11:38:27 -07:00
Travis Plunk fcd6ddcfc7
Update version numbers to 6.0.2 (#6402)
* Add script to update the version number
* Update version to 6.0.2
2018-03-15 11:41:01 -07:00
Aditya Patwardhan 71cb49a99d Build: Remov version forcing code from NuGet package generation (#6390) 2018-03-15 10:12:56 -07:00
Travis Plunk 8ffc0b0e3c
Support non-GitHub commits in the change log generation script (#6389) 2018-03-13 17:13:56 -07:00
Travis Plunk 8ba6f319f3
MSI: update architecture specific filenames (#6379) 2018-03-13 14:02:12 -07:00
Travis Plunk 88b3833ee3
Add no appimage build (#6380) 2018-03-13 13:49:25 -07:00
Travis Plunk 491ee47ee7
When doing daily/test build in a non-release branch use the branch name as the preview name (#6355) 2018-03-12 12:31:34 -07:00
Travis Plunk 25ecf8c83c Clean the intermediate artifact 'psoptions.json' from build (#6356) 2018-03-10 09:51:23 -08:00
Donovan Brown 489f8336b1 Added Service Point Manager call to force Tls12. (#6310)
Calls [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 during bootstrap to download PowerShell core to avoid an error.
2018-03-09 15:12:05 -08:00
Dongbo Wang d623c9f10c Add '-Restore' when build win-arm and win-arm64 (#6353) 2018-03-09 09:50:26 -08:00
Travis Plunk 2d58072460 Make sure package verification failure fails the AppVeyor build (#6337) 2018-03-08 15:58:59 -08:00
Dongbo Wang 6d191970c5
Build: Remove two unneeded lines from 'Invoke-AppveyorFinish' (#6344) 2018-03-08 14:51:10 -08:00
Dan Travison 0c845b94c7 Rename log and logerror to Write-Log [$message] [-error] (#6333)
Fix #6332
This change renames log and logerror functions to a single Write-Log [$message] [-error] function to avoid conflicting with the log command on MacOS.
2018-03-08 10:47:20 -08:00
Travis Plunk f1c0c2ade5
Clean build during daily build to ensure MSI package is generate correctly (#6334)
Clean build during the daily build to ensure MSI package is generated correctly
- Do another clean build directly before packaging to clean up files that test has added
2018-03-07 19:47:21 -08:00
Travis Plunk 8f4eaf3bbe
make Linux packages use correct version scheme for preview releases (#6318)
Fixes #6315

make Linux packages use correct version scheme for preview releases
- Now uses <Major>.<Minor>.<Patch>~<PreviewName> instead of <Major>.<Minor>.<Patch>-<PreviewName> as the - was interpretted as an iteration of the release not a preview.
2018-03-07 11:45:21 -08:00
Timothée Mazzucotelli d56c1913aa Add support for Debian in installpsh-debian.sh (#6314)
The script installpsh-debian only works for Ubuntu distributions. This PR adds support for Debian as well.

Related issue:  #5700

* Remove support for Ubuntu 17.04 in installpsh-debian.sh
2018-03-06 14:01:50 -08:00
Travis Plunk da905f891b
MSI: Make sure that file components are patchable (#6303)
MSI: Make sure that file components are patchable
- avoid changing names and guids of components between builds as this prevents patch generation
- This required submitting the file generated by heat
- add code to make sure the generated file is not out of date
2018-03-06 10:13:26 -08:00
Travis Plunk 7c7ec241a0
MSI: Cause preview builds to install Side by side with release builds (#6301)
MSI: Cause preview builds to install Side by side with release builds
- change the upgrade code if there is a preview part of the version
2018-03-05 10:27:47 -08:00
Travis Plunk 5030c9a2fd
change the artifact count for wixpdb (#6254) 2018-02-26 18:10:55 -08:00
Travis Plunk 49ec403899
fix MSI creation errors, and capture wixpdb for later patch creation (#6221)
- add `wixpdb` output when creating `MSI` package
- capture `wixpdb` in official build
- clean up anything left behind from previous MSI builds before starting MSI build to prevent using dirty files.
- make sure MSI creation fails if there is an error
- ignore `.wixpdb` files in git
- Add functionality to `Start-NativeExecution` to 
    - only display output if there is an error 
    - log caller information
- WXS validation error fixes
    - Remove unused `ExitDialog` to fix ICE82
    - Add KeyPath to `SetPath` to fix ICE18
    - Use `HKMU` which translates to `HKLM` to runtime to fix various validation errors about creating the shortcut
- Suppress Validation errors
    - suppress ICE61, which is about same version upgrades being allowed
    - suppress ICE57, caused by the shortcut not being installed per user
2018-02-26 15:45:15 -08:00
Aditya Patwardhan a53547ce78 Add scripts to generate unified Nuget package (#6167)
Remove the functions which generated Nuget packages for Windows.
Add function New-UnifiedNugetPackage to generate nuget packages for each assembly with unix and windows runtimes.
Add function New-NuSpec and New-ReferenceAssembly for creating the required items forNew-UnifiedNugetPackage.
Add a sample for cross platform project with conditional compilation for Linux.
Add function Publish-NugetToMyGet to publish nuget packages to powershell.myget.or
2018-02-26 15:35:09 -08:00
Travis Plunk ff89b8ade7 Fix date tests failing in travis CI full builds (#6249) 2018-02-26 15:11:18 -08:00
Travis Plunk 7b2dff8a3c
use powershell windowsservercore docker image for release builds (#6226) 2018-02-23 15:26:57 -08:00
Travis Plunk 9a46b3f3c0
Refactor new-msipackage into packaging.psm1 (#6208)
Refactor new-msipackage and related function into packaging.psm1
2018-02-22 13:31:00 -08:00
Klaudia Algiz 17b501c9fa Support running tests in root privilege on Linux. (#6145)
Support running tests in root privilege on Linux by adding the `REQUIRESUDOONUNIX` tag.
- Delete skip tag in tests which require `sudo`.
2018-02-16 11:13:23 -08:00
Steve Lee c1c5344a88 Update copyright and license headers (#6134)
Based on standard practices, we need to have a copyright and license notice at the top of each source file. Removed existing copyrights and updated/added copyright notices for .h, .cpp, .cs, .ps1, and .psm1 files.

Updated module manifests for consistency to have Author = "PowerShell" and Company = "Microsoft Corporation". Removed multiple line breaks.

Separate PR coming to update contribution document for new source files: #6140

Manually reviewed each change.

Fix #6073
2018-02-13 09:23:53 -08:00
Travis Plunk 363c964ebd
add scripts to set/update the release tag in VSTS (#6107) 2018-02-07 15:24:34 -08:00
Christoph Bergmeister 88909811ff Msi installer: Add smoke test (#6105)
PR 6043 broke the installer (issue #6095). To prevent this from happening in the future, add a smoke test that installs the msi in appveyor build and make build fail if installation failed.
It uses the exit code to determine the success. The reason why it does not fail in the current state is because as I pointed out here, the failing custom action is not returning its exit code.
2018-02-07 15:00:42 -08:00
Travis Plunk 3a33be87a7 Merge branch '6.0.1' into master
# Conflicts:
#	docker/release/fedora27/Dockerfile
#	docs/installation/linux.md
#	docs/installation/macos.md
#	tools/metadata.json
2018-01-25 16:35:25 -08:00
Dongbo Wang 45bf1dc142
CI Build: Use TRAVIS_PULL_REQUEST_SHA to accurately get the commit message (#6024) 2018-01-25 13:42:49 -08:00
Thomas Conté 7dcd4c83d9 Fix build/package/installation scripts for SLES (#5918)
Small changes to the SUSE installation script so that it allows installing on SLES 12+ in addition to openSUSE 42+
2018-01-22 14:58:17 -08:00
Travis Plunk a603cf3867
Update csproj files to the latest version of the package references (#5961)
* Add function which tells you packages which probably need to be updated
2018-01-22 12:06:50 -08:00
Dan Travison 65a4002990 Logging: Fix the escaped characters when generating '.resx' file from PowerShell ETW manifest. (#5892) 2018-01-19 08:55:20 -08:00
Dongbo Wang 4b09a93676
Update docs and scripts for PowerShell 6.0.1 release (#5938) 2018-01-18 15:07:43 -08:00
Christoph Bergmeister d3a775da9a Packaging: simplify building an installable package for Windows (#5871)
This is the continuation of PR 5499 that had to be abandoned due to a fatal merge conflict and I did not want to risk accidentally reverting recent fixes.

    Remove unnecessary/unused default for productGuid because it always gets a new Guid when being called from Start-PSPackage
    Add defaults for required files but also add extra path validation attribute
    Rename ProductGuid to ProductCode
2018-01-17 15:34:03 -08:00
Travis Plunk a08f3241a3 Merge 6.0.0 into master
# Conflicts:
#	.github/Images/GitHub-PR.png
#	assets/Product.wxs
#	docs/installation/linux.md
#	docs/installation/macos.md
#	docs/installation/windows.md
#	test/powershell/Modules/Microsoft.PowerShell.Utility/WebCmdlets.Tests.ps1
#	tools/metadata.json
2018-01-10 17:42:41 -08:00
Dongbo Wang c4cf1440dd
Update docs and scripts for PowerShell 6.0.0 GA release (#5837) 2018-01-09 15:57:38 -08:00
Dongbo Wang 658960e3f9 Move group policy settings and enable policy controlled logging in PowerShell Core (#5791)
Make PowerShell Core reads group policy settings from different registry keys (Windows only) and the configuration files (both Windows and Unix).
- On Windows, move to different GPO registry keys.
- On both Windows and Unix, read GPO related settings from the configuration file `powershell.config.json`.
- On Windows, the policy settings in registry take precedence over the configuration file.
- Enable policy controlled logging and transcription on Unix.
2018-01-08 18:09:00 -08:00
Dongbo Wang d261e1f166
Move group policy settings and enable policy controlled logging in PowerShell Core (#5791)
Make PowerShell Core reads group policy settings from different registry keys (Windows only) and the configuration files (both Windows and Unix).
- On Windows, move to different GPO registry keys.
- On both Windows and Unix, read GPO related settings from the configuration file `powershell.config.json`.
- On Windows, the policy settings in registry take precedence over the configuration file.
- Enable policy controlled logging and transcription on Unix.
2018-01-08 12:03:23 -08:00
Dongbo Wang 117e83a025 Add xUnit tests for reading Policy settings from config file 2018-01-04 13:40:51 -08:00
Travis Plunk 359a3f078e
tools: fix install-powershell for running during window setup (#5727)
Set the system path instead of the user path so that all users can use the installation
    If the required destination folder doesn't exist, create it
2018-01-02 11:13:31 -08:00
Dongbo Wang dab51c7f40 Automate the generation of release change log draft (#5712)
Create the module 'releaseTools.psm1' under 'tools' folder, which expose the function 'Get-ChangeLog' to generate a release change log based on the local commit history.
2017-12-20 16:43:33 -08:00
Dongbo Wang c17a975683
Automate the generation of release change log draft (#5712)
Create the module 'releaseTools.psm1' under 'tools' folder, which expose the function 'Get-ChangeLog' to generate a release change log based on the local commit history.
2017-12-19 13:39:36 -08:00
Travis Plunk 7924224f77 Merge branch '6.0.0-upstream' into merge_rc2_to_master
# Conflicts:
#	README.md
#	docker/tests/container.tests.ps1
#	test/tools/WebListener/Controllers/ResponseController.cs
#	test/tools/WebListener/README.md
#	tools/appveyor.psm1
#	tools/travis.ps1
#   docs/linux.md
#   CHANGELOG.md
2017-12-14 15:29:59 -08:00
Dongbo Wang f11b9ed794 Update packaging and release build scripts to produce zip packages for win-arm/win-arm64 (#5664)
Note: changes in tools/appveyor.psm1 are not moved to the 6.0.0 branch because:
   - the change is to produce win-arm32/win-arm64 zip packages in daily builds.
     Since we don't have daily build for the 6.0.0 branch, the change is not needed.
   - there are conflicts when cherry-picking the commits
2017-12-11 20:46:33 -08:00
Travis Plunk 34ddf425c2 tools: enable install-debian to work with VSTS Hosted Linux Preview (#5659)
Added -skip-sudo-check, because the check fails in VSTS Hosted Linux Preview even though sudo works.
2017-12-11 20:46:33 -08:00
Dongbo Wang 4dc5512c83
Update packaging and release build scripts to produce zip packages for win-arm/win-arm64 (#5664) 2017-12-11 13:57:02 -08:00
Travis Plunk 2a9c1cad00
tools: enable install-debian to work with VSTS Hosted Linux Preview (#5659)
Added -skip-sudo-check, because the check fails in VSTS Hosted Linux Preview even though sudo works.
2017-12-11 10:28:43 -08:00
Dongbo Wang c3e5e35892 Fix the Linux release build (#5660)
The Linux release build was broken because AppImage,tar,tar-arm in build.json is turned into a string of "AppImage,tar,tar-arm" by docker run. Now it's changed to use switch parameters.
2017-12-10 10:29:53 -08:00
Dongbo Wang bfa017d998 Add linux-arm tarball package to release build (#5652)
Create linux-arm tarball package in our release build.
Also moved the Linux-x64 tarball creation to Ubutntu 14.04, because Start-PSBuild adds additional symbolic link files when running on Red Hat Family distros.
Note that linux-arm can only be built on Ubuntu, so the tar-arm package will also be generated from the Ubuntu 14.04.
2017-12-10 10:29:53 -08:00
Travis Plunk d380317a4d Add comment about 'productbuild' used in packaging script (#5654) 2017-12-10 10:29:53 -08:00
Travis Plunk 322724e1f2 Packaging: make mac package require 10.12 or newer (#5649)
Fixes #4290
Make mac package require 10.12 or newer.
Required that the package is installed to a disk with macOS installed.
The Apple example XML had a background image added as well, so I added a background image:
https://user-images.githubusercontent.com/10873629/33738943-014c9d00-db50-11e7-9628-310ce6427438.png
2017-12-10 10:29:53 -08:00
Travis Plunk 64eab39af5 update signing subjects (#5650)
fixes #5642
Update the signing subject for the windows package and windows files
2017-12-10 10:29:53 -08:00
Dongbo Wang 4edfebd69f Fix the Linux release build (#5660)
The Linux release build was broken because AppImage,tar,tar-arm in build.json is turned into a string of "AppImage,tar,tar-arm" by docker run. Now it's changed to use switch parameters.
2017-12-09 13:32:37 -08:00
Dongbo Wang 7f94b6e8bd Add linux-arm tarball package to release build (#5652)
Create linux-arm tarball package in our release build.
Also moved the Linux-x64 tarball creation to Ubutntu 14.04, because Start-PSBuild adds additional symbolic link files when running on Red Hat Family distros.
Note that linux-arm can only be built on Ubuntu, so the tar-arm package will also be generated from the Ubuntu 14.04.
2017-12-08 14:17:52 -08:00
Travis Plunk abb6117b96 Add comment about 'productbuild' used in packaging script (#5654) 2017-12-08 13:47:54 -08:00
Travis Plunk 24298f76f5
Packaging: make mac package require 10.12 or newer (#5649)
Fixes #4290
Make mac package require 10.12 or newer.
Required that the package is installed to a disk with macOS installed.
The Apple example XML had a background image added as well, so I added a background image:
https://user-images.githubusercontent.com/10873629/33738943-014c9d00-db50-11e7-9628-310ce6427438.png
2017-12-08 10:55:34 -08:00
Travis Plunk dcbb3a5299 Packaging: Try to make New-Unix package more readable (#5625)
* refactor start-pspackage into functions

* [Package] Added instrumentation

* [Package] update change log

* [Package] Fix distribution parameter in get-dependecies

* [Package] fix dependencies

* [Package] fix issues with validate script
2017-12-07 17:57:08 -08:00
Travis Plunk c04db0f79a
update signing subjects (#5650)
fixes #5642
Update the signing subject for the windows package and windows files
2017-12-07 17:56:37 -08:00
Travis Plunk c367a9def1 Packaging: Try to make New-Unix package more readable (#5625)
* refactor start-pspackage into functions

* [Package] Added instrumentation

* [Package] update change log

* [Package] Fix distribution parameter in get-dependecies

* [Package] fix dependencies

* [Package] fix issues with validate script
2017-12-07 10:48:00 -08:00
Dongbo Wang 237ac0b740 Minor refactoring of the release build scripts (#5632)
* Update release build

* Minor refactoring of the build script
2017-12-07 10:28:16 -08:00
Travis Plunk c44ddfd6fe build: unbundle pester (#5623)
# Conflicts:
#	tools/appveyor.psm1
#	tools/travis.ps1
2017-12-06 16:13:26 -08:00
Dongbo Wang 233f35f68b Minor refactoring of the release build scripts (#5632)
* Update release build

* Minor refactoring of the build script
2017-12-06 15:51:33 -08:00
Travis Plunk 25617f15c2 build: unbundle pester (#5623)
* remove pester module

* restore Pester as a module only in CI build from the git repo

* mark appveyor builds as CI builds

* remove pester exclusions

* mark travis builds as ci

* exclude publish folder from spell check

* do not run spell check on publish folder
2017-12-04 17:16:53 -08:00
Travis Plunk 0dfc1f4257 Remove exclusion for hang and add context exception for remaining instances (#5595) 2017-12-01 17:34:30 -08:00
Chunqing Chen 22abe98c05 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-12-01 17:34:30 -08:00
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 8ec31afe80 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 17:53:57 -08:00
Steve Lee aae076e046 remove signed folder in zip during packaging (#5527) 2017-11-28 17:53:57 -08:00
bergmeister ee8b039ed1 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-28 17:53:57 -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
bergmeister cc942a222b Change synopsis of install-powershell.ps1 to reflect that it works cross-platform (#5465) 2017-11-21 15:57:34 -08: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 2a5d4c43d3 Fix mac packaging (#5496) 2017-11-17 17:26:00 -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
Dongbo Wang 2fd484f491 Update the man help file used in packaging (#5173)
* Update pacakging.psm1 and rename man file

* Update pwsh.1.ronn
2017-10-19 15:09:16 -07:00
Dongbo Wang 59b5d16139 Update appimage.sh to reflect the new name 'pwsh' (#5172) 2017-10-19 12:32:55 -07:00
Greg Zimmerman 01fe7c24eb Add macos launcher. (#5138) 2017-10-18 12:22:07 -07:00