Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Schwartzmeyer 002d2a6911 Satisfy shellcheck
Some variables left unquoted because they may be empty.
2016-09-12 15:01:19 -07:00
Andrew Schwartzmeyer 4253051421 Add RUNARGS and BUILDARGS for more flexibility
E.g. RUNARGS="--rm" or BUILDARGS="--no-cache".
2016-09-12 15:01:19 -07:00
Andrew Schwartzmeyer e1e014295b Add -powershell and -Pester options to Start-PSPester
When testing containers, we want to use the in-box PowerShell.
2016-09-12 15:01:19 -07:00
Andrew Schwartzmeyer 03237e91b6 Consolidate test script with launch script 2016-09-12 15:01:19 -07:00
Andrew Schwartzmeyer ceed98e33d Enable building arbitrary forks and branches 2016-09-12 15:01:19 -07:00
Andrew Schwartzmeyer d76cc0f600 Add unstable Dockerfile for CentOS 7 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 2c7e687340 Add stable Dockerfile for CentOS 7 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 7ac85f6ce0 Add unstable Dockerfile for Ubuntu 16.04 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer da024ec2ba Add stable Dockerfile for 16.04 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 7375ab58b1 Add Docker scripts
Common bootstrap.ps1 script to run PowerShell builds.
Launch script to build and tag all containers.
Test script to run tests in unstable containers.
2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 6bddaf6534 Add unstable Dockerfile for Ubuntu 14.04 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer cbc658b525 Add stable Dockerfile for Ubuntu 14.04
Dependencies and PowerShell are installed.
2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 3e269103b5 Remove prototype Dockerfile 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 427435c8fd Refactor .NET CLI installation into Install-Dotnet
So that it can be reinstalled separately if desired.

Also removed the set validation as it was now wrong,
and removed the warning about no Invoke-WebRequest on Core PowerShell
(it is ported now).

I don't like the duplicate parameter logic,
especially around -NoSudo.
2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer fc2c1b9f7d Update apt-get repo in Start-PSBootstrap
yum does not need this as yum install does it automatically.

This is needed when running, for example, in a container.
2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 3a66c04f23 Add -NoSudo option to Start-PSBootstrap 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 3687692802 Guard fatal bootstrap steps with Start-NativeExecution 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer bb476d4aef Install groff when bootstrapping for packaging 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer e7537b7ef4 Improve GetFullyQualfiedName() test 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer b86b1f870a Fix memory leak in GetFullyQualifiedName() 2016-09-12 15:01:18 -07:00
Andrew Schwartzmeyer 7c10dac20c Update macOS install docs for OpenSSL 2016-09-04 12:40:57 -07:00
Andrew Schwartzmeyer 27530c403c Use direct download URLs instead of API
GitHub's API is throttled to 60 requests per hour per IP address when
for non-authenticated calls, which was causing severe CI flakiness.
While this adds another set of URLs to update for each release, the
alternative was adding an OAuth token and maintaining its ownership.
Moreover, this code is simpler than the previous API parsing.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer 363657717c Handle package download failure 2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer fc2e4e0e23 Revert "Temporarily disable OS X on Travis CI"
This reverts commit bbf64d17ad.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer e337d93720 Install OpenSSL via Homebrew on macOS
Since it is required. Note that we do *not* unsafely link the OpenSSL
libraries into the system folders, as we instead patch .NET Core's
libraries to find OpenSSL in the installed location.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer 6b582851d6 Don't download package silently
Otherwise users think it's slow or hung.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer 25eab9a2e5 Quote all $variables
For paranoia.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer e3cf257a7d Use hash to check for curl
Our shebang is Bash.
2016-09-02 17:17:20 -07:00
Andrew Schwartzmeyer 683e6fbe36 Remove incorrect logic from GetFullyQualifiedName()
I think this logic was originally added with the assumption that any
hostname with a dot in it was an FQDN. I believe this is incorrect. The
hostname is the hostname regardless of included dots, and getting the
FQDN amounts to always querying for the canonical name.
2016-09-02 10:27:11 -07:00
Andrew Schwartzmeyer 72a1ebdcbb Fix error handling in download.sh
This script should be deleted now that we can wget releases.
2016-08-19 11:18:00 -07:00
Andrew Schwartzmeyer 552bf9b50a Fix asset download in download.sh 2016-08-18 08:30:14 -07:00
Andrew Schwartzmeyer cb603b0334 Remove CI images badges until repaired 2016-08-18 07:49:41 -07:00
Andrew Schwartzmeyer 7f63daafd9 Fix AppVeyor for public repo 2016-08-18 00:06:55 -07:00
Andrew Schwartzmeyer 654425059f Fix Travis CI for public repo 2016-08-18 00:05:34 -07:00
Andrew Schwartzmeyer f2275f9a0a Fix download.sh for public repo 2016-08-18 00:05:08 -07:00
Andrew Schwartzmeyer a9e809c18a Fix naming of Unix packages
- .NET Core RID suffixes removed
- `el7.centos` suffix added to RPM
- `1ubuntu1.14.04.1` iteration used for DEB packages

`~` cannot be used after `ubuntu1` because GitHub release renames it to
a `.`; additionally, no packages lack the final suffix `.1`. While my
machine is `.5` I could find no packages that went past `.3`, so let's
use this to indicate that it works for `14.04.1` and forward.

We are *not* recreating the alpha.9 packages, but will we rename them
accordingly. This means that the filenames will be "correct" but the
meta-data will be out-of-date.
2016-08-16 16:07:54 -07:00
Andrew Schwartzmeyer bd31e2ab5c Update changelog 2016-08-16 14:43:34 -07:00
Andrew Schwartzmeyer 1e265e915e Update links for alpha.9
Also adds the Windows 8.1 build to the readme, and bumps the AppVeyor
build number.
2016-08-16 14:43:34 -07:00
Andrew Schwartzmeyer 6b4666ce36 Update AppVeyor build number to 6.0.0-alpha.8 2016-08-11 18:38:45 -07:00
Andrew Schwartzmeyer 3f9b1833ac Fix Start-PSPackage for Release build on Windows 2016-08-11 17:38:45 -07:00
Andrew Schwartzmeyer e89da27994 Update releases on readme 2016-08-11 17:11:50 -07:00
Andrew Schwartzmeyer e142f7c987 Update Linux / OS X installation documentation 2016-08-11 17:11:50 -07:00
Andrew Schwartzmeyer 21a7bd876c Update changelog for v6.0.0-alpha.8 release 2016-08-11 17:11:50 -07:00
Andrew Schwartzmeyer 5b48acb1cb Update releasing documentation 2016-08-11 14:42:37 -07:00
Andrew Schwartzmeyer 349491be84 Support building Ubuntu 16.04 packages 2016-08-11 13:42:02 -07:00
Andrew Schwartzmeyer 39184852d9 Add logic to rename package with runtime suffixed 2016-08-11 13:38:54 -07:00
Andrew Schwartzmeyer 49d297c410 Fix permissions of package files
The DLLs should not be marked executable on Unix.

Also remove deb-build-depends as the `dotnet` package is not yet
universally available.
2016-08-11 13:38:54 -07:00
Andrew Schwartzmeyer c0aac111d3 Enable side-by-side Unix packages 2016-08-11 13:38:54 -07:00
Andrew Schwartzmeyer 5235fed2c7 Refactor Start-PSPackage
Moved Unix package code into New-UnixPackage, switching on $Types to
call the appropriate function given the list of types.

Also fixed bug with chmod on a symlink; it was unnecessary.
2016-08-11 13:38:54 -07:00
Andrew Schwartzmeyer a3f3734f09 Include license during build
Rather than including it only at packaging, we should include this
license as part of `dotnet build` and `dotnet publish`.
2016-08-11 13:38:54 -07:00
Andrew Schwartzmeyer 1cc454fbd2 Update known issues
The "unavailable cmdlets" section was removed pending a comprehensive
list compiled from the module declarations.
2016-08-09 18:54:05 -07:00
Andrew Schwartzmeyer 5310423678 Remove Windows+Unix-Core
There are no longer module declarations that are identical between Core
PowerShell on Windows and on Unix.
2016-08-09 18:54:05 -07:00
Andrew Schwartzmeyer d59710d310 Remove unimplemented Management cmdlets from Unix
These are not currently implemented and so should not show up as
available.

The *-Computer cmdlets are already not compiled for Unix (and so not
available), so let's not declare them in the manifest.

The Get-ComputerInfo cmdlet does not work on Unix and so should not be
made available.

Test-Connection depends on an unavailable WMI provider.

Get/Set-TimeZone are not yet ported.
2016-08-09 18:54:05 -07:00
Andrew Schwartzmeyer f68cb8c385 Add copy of Management module declaration for Unix
Unmodified so we can track changes.
2016-08-09 18:53:44 -07:00
Andrew Schwartzmeyer e750fb6284 Move Management module declaration to Windows-Core modules
Since we need different versions for Windows and Unix.
2016-08-09 18:53:44 -07:00
Andrew Schwartzmeyer 280bd651c1 Remove unimplemented Utility cmdlets from Unix
ConvertFrom-SddlString and Unblock-File are Windows-specific cmdlets
with no equivalent on Unix.

squash! Remove Unblock-File from Unix
2016-08-09 18:53:43 -07:00
Andrew Schwartzmeyer 9c07b9f29d Add copy of Utility module declaration for Unix
Unmodified so we can track changes.
2016-08-09 17:50:06 -07:00
Andrew Schwartzmeyer c22dd04967 Move Utility module declaration to Windows-Core modules
Since we need different versions for Windows and Unix.
2016-08-09 17:50:06 -07:00
Andrew Schwartzmeyer 528f255dd8 Fix publishOptions for powershell-unix
While Unix builds were given their own module folder,
it was only being copied for build, not for publish,
thus breaking some builds.
2016-08-09 12:39:19 -07:00
Andrew Schwartzmeyer 1576172d23 Add Get/Set ExecutionPolicy cmdlets back to module
Without these declared in the Unix module manifest,
the related tests fail as the cmdlets cannot be found.
This is a regression.
2016-08-09 12:06:05 -07:00
Andrew Schwartzmeyer 0fc21db411 Fix Start-PSPester setup
Start-PSPester must ensure that the environment variable `PSMODULEPATH`
is not set before starting the new PowerShell process.
If it is set, then the tests are not guaranteed to be correct,
as they will be operating with the host process's `PSMODULEPATH`,
thus ignoring their own modules.

I also refactored the Start-PSPester command setup code.
2016-08-09 12:03:30 -07:00
Andrew Schwartzmeyer 4c830d5e32 Add Trace-Commands back to Utility module
This fixes a regression introduced by 0dd425da1.
2016-08-08 12:14:06 -07:00
Andrew Schwartzmeyer 5bc34eb63c Run Trace-Command tests on CI 2016-08-08 12:11:51 -07:00
Andrew Schwartzmeyer 9d164ea972 Move Unix class under Platform
E.g. SMA.Platform.Unix, not just SMA.Unix.
2016-08-08 10:48:59 -07:00
Andrew Schwartzmeyer a8416d7b30 Consolidate GetUserName code
Once .NET Core 1.1 becomes available, we can likely remove the entirety
of CorePsExtensions.cs.
2016-08-08 10:48:59 -07:00
Andrew Schwartzmeyer 3f9889d6da Consolidate InternalGetFolderPath
This logic belongs in one place, not split in two.
2016-08-05 15:34:52 -07:00
Andrew Schwartzmeyer 816dac0a55 Do not throw when getting Unix domain or user name
If the attempt to get the name fails, throwing an exception results in
PowerShell crashing. Instead, we should simply return empty data.

"unknown" is specifically not returned because it would be ambiguous; it
is not impossible to have an actual user or domain named "unknown".
2016-08-05 15:34:43 -07:00
Andrew Schwartzmeyer 09e1683098 Add Ubuntu 16.04 RID 2016-08-05 10:09:40 -07:00
Andrew Schwartzmeyer d3e5ff9ba8 Set merge=union for changelog
This will prevent the vast majority of conflicts with this file being
updated concurrently.
2016-08-04 14:57:13 -07:00
Andrew Schwartzmeyer a3a149ae5d Import Git tags to changelog 2016-08-04 14:41:55 -07:00
Andrew Schwartzmeyer 5f396629f7 Use Ruby 2.2.1 explicitly on Travis CI OS X 2016-08-04 13:52:31 -07:00
Andrew Schwartzmeyer 3143ccf97c Use default Ruby on OS X 2016-08-04 13:52:30 -07:00
Andrew Schwartzmeyer 120cc61a07 Downgrade to Xcode 7.3 2016-08-04 13:52:26 -07:00
Andrew Schwartzmeyer e936a7cd04 Remove Travis CI cache
It is unbearably slow on OS X.
2016-08-04 11:39:15 -07:00
Andrew Schwartzmeyer 39faa3dd25 Fix OS X OpenSSL link for .NET Core
Due to https://github.com/Homebrew/brew/pull/597,
.NET Core's installation instructions of `brew link --force openssl` are
now invalid (for good reasons, due to security holes). Until .NET Core
updates their libraries to find the OpenSSL libraries correctly, we can
update them as part of `Start-PSBootstrap`.

See https://github.com/dotnet/cli/issues/3964
2016-08-04 11:21:48 -07:00
Andrew Schwartzmeyer 5800b86a23 Revert "Temporarily disable OS X builds on Travis CI"
This reverts commit fef3871be2.
2016-08-04 11:03:54 -07:00
Andrew Schwartzmeyer fef3871be2 Temporarily disable OS X builds on Travis CI
OS X is failing due to home brew's OpenSSL package changes. Until we've
resolved .NET Core's use of the libraries, we need to disable the build.
2016-08-04 10:09:44 -07:00
Andrew Schwartzmeyer f866f8b06f Fix inconsistent braces and whitespace in build.psm1 2016-08-03 13:36:13 -07:00
Andrew Schwartzmeyer c35c9e5ef2 Fix libclrjit name for OS X
It's a dylib, not a so.
2016-08-03 13:36:13 -07:00
Andrew Schwartzmeyer 9c205c6158 Fix crossgen search for Ubuntu/CentOS 2016-08-03 13:13:14 -07:00
Andrew Schwartzmeyer 9cc6673b27 Add regression tests for custom key bindings
Also tests capitalized key bindings, hence the need to compare case
sensitively.
2016-07-28 22:41:04 -07:00
Andrew Schwartzmeyer 59624e9b2f Fix comparison for default ConsoleKey 2016-07-28 21:51:03 -07:00
Andrew Schwartzmeyer 554ef0b780 Use GetCharFromConsoleKey on Windows
Due to virtual key codes on Windows, simple chords like Ctrl+] are not
recognized as such. Instead, the ConsoleKey is Oem6, and the KeyChar is
an control code.
2016-07-28 21:51:02 -07:00
Andrew Schwartzmeyer d5b339fb5d Revert changes made to GetGestureString
Given the use of key.KeyChar, the original implementation is now
portable.
2016-07-28 21:35:19 -07:00
Andrew Schwartzmeyer 1facd95f1e Implement TryParseCharLiteral for Linux 2016-07-28 21:35:19 -07:00
Andrew Schwartzmeyer 75b086402a Remove GetCharFromConsoleKey
The ConsoleKey enum does not necessarily cover all possible chars.
Moreover, the times we need to obtain this info, we already have it.
2016-07-28 21:35:19 -07:00
Andrew Schwartzmeyer ba6b9663fb Move build badges
* Remove superfluous link to releases page
* Remove superfluous link to docs/build
* Add column back for install instructions
* Add extra link to the FAQ
2016-07-28 15:09:14 -07:00
Andrew Schwartzmeyer ba5bcbc8f3 Update releasing documentation 2016-07-28 14:40:34 -07:00
Andrew Schwartzmeyer 6e44b52c92 Update contributing guidelines
* Links fixed.
* Link to maintainers removed; superfluous in this document.
* TODO added to changelog.
  (I don't like this but was hesitant to remove it).
* Periods and spelling fixed.
2016-07-28 14:40:34 -07:00
Andrew Schwartzmeyer f63da502e1 Make 101.md the tree's README.md 2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer a5d655c998 Consolidate releasing and maintainers docs 2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer 1dc788897f Make maintainers.md the tree's README.md 2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer 886dea5cb5 Rewrite README 2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer 32b7d8cb99 Make learning-powershell.md the tree's README.md 2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer 9ffebab803 Fix learning-powershell path
There was a random capital S.
2016-07-28 11:15:42 -07:00
Andrew Schwartzmeyer 2260cf7469 Improve Linux installation instructions 2016-07-27 13:13:12 -07:00
Andrew Schwartzmeyer 41173a3b65 Rename IsCore to IsCoreCLR 2016-07-26 11:54:08 -07:00
Andrew Schwartzmeyer 9ba6ba359d Re-enable assembly name comparison 2016-07-26 11:54:08 -07:00
Andrew Schwartzmeyer b400ba3688 Use CORECLR to guard analysis progress record 2016-07-26 11:53:53 -07:00
Andrew Schwartzmeyer f0e64c2c6c Clean up ApplicationBase work-around 2016-07-26 11:49:54 -07:00