heyday / beam Goto Github PK
View Code? Open in Web Editor NEWA command line utility for deploying websites to servers
License: MIT License
A command line utility for deploying websites to servers
License: MIT License
https://getbeam.io/beam.phar is still at revision 6728568 from 2017 and beam does not appear to be in Packagist.
There is no scotty option and it makes me sad.
Example usage:
beam up live --scotty
Example output:
???
Can definitely be some improvements
Currently when specifying multiple paths, the last one is used:
$ beam up live -p themes -p mysite/code
...
[warn] TARGET: user@host:/home/user/public_html/mysite/code
It'd be nice to be able to specify more than one path (and possibly single files too):
$ beam up live -p themes -p mysite/code -p mysite/cache_config.yml
...
[warn] TARGET: user@host:/home/user/public_html
[warn] PATHS: themes
mysite/code
mysite/cache_config.yml
Using the path command on the assets directory fails.
Stevie-2:source stevie$ beam down live -p assets
[warn] You're about sync files between:
[warn] SOURCE: [email protected]:/home/mer/public_html/assets
[warn] TARGET: /Users/stevie/Sites/mer/source/assets
[warn] Determining list of files that will be modified...
[error] No changed files
Is it possible to user Beam on windows ? I can't find this information anywhere.
Where is the Beam phar going to be hosted? Currently the hard-coded URL is http://beam.heyday.net.nz
As mentioned by @shane-garelja in issue #38, it would be good if there were a nicer way to handle password prompts for rsync without having to deploy via a wrapper when trying to avoid the double prompt that is caused due to the rsync being run once for the file check and once for the actual file transfer.
Placeholder issue to ensure feedback from #60 doesn't get lost.
In #60 when doing a multi-server deployment, output logging is no longer streamed, but is consumed from each node before being merged and output. When operating in single-server mode, this isn't necessary, and streaming should be re-enabled.
Also need to update symfony dependencies (2.x is super outdated).
The installer fails to download or (when manually downloaded) run on certain systems (specifically FreeBSD in my case) because of the missing SSL CA - G2 certificate on your server. See https://ssltools.thawte.com/checker/views/certCheck.jsp and enter https://beam.heyday.net.nz/ for details.
Update: the installer downloads but cannot run on Mac OS X (Yosemite 10.10.4).
Using a default AWS EC2 instance and connecting with the ubuntu user I would like to be able to rsync as root so that permissions on target directories can be changed. I think in rsync itself I can pass --rsync-path "sudo rsync" and the ubuntu user would run as root. But can I pass this through the beam options in any way?
beam / src / Heyday / Component / Beam / Command / BeamCommand.php
"User canceled" => "User cancelled"
Same situation as the previous localisation issues?
Hi there, I'm attempting to use ftp with beam but keep getting the following error:
File: .beamlog[=>-----------------------------------------------------------------------------------------------------] 1/60 files[Error] Failed to mkdir '/beam/.':
[Error] 550 Can't create directory: File exists
I've confirmed that the file doesn't exist prior to running 'beam up --full' and that after this command runs the /beam/ folder is created. I'm not sure how to debug this from here. It appears to create the file and then thinks the file already exists.
We need an easy way to find out what code is on any given server and where that code is in the repository now. Beam already saves information on servers about the last beamed commit, but there's currently no way to retrieve or parse this information using beam. The solution to get this information as is would be:
$ ssh example.com cat path/to/webroot/.beamlog
Deployer: stevie
Ref: remotes/origin/master
commit c4bbafdc440d538ffa669f9e873ff9708e074b7e
Author: Dr. Stevie Mayhew <[email protected]>
Date: Thu Sep 5 13:00:46 2013 +1200
Enhanced comments with memes
$ git branch -a --contains c4bbafdc4
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
What beam needs is some sort of status
command to take full advantage of the .beamlog
file and the things it already knows (eg. exactly where your code is). Said command might work something like this:
$ beam status s1
Deployer: stevie
Ref: remotes/origin/master
commit c4bbafdc440d538ffa669f9e873ff9708e074b7e
Author: Dr. Stevie Mayhew <[email protected]>
Date: Thu Sep 5 13:00:46 2013 +1200
Rewrote all business logic in BASH
This commit is appears in:
master
remotes/origin/master
I think the transport method should be part of the beam.json config, not an argument or option.
When running beam from inside the znz theme directory i get the following error.
pieter: /Users/pieter/Sites/znz/source/themes/znz/js/lfn/src [git:feature/gith-phase-2+]
$ beam up s1
warn: Starting...
error: Config file deploy.json not found!! `Beam` must be run inside project source directory or deeper
When deploying to a staging server, upload a text file with commit info e.g.
[Date] [commit hash]
[commit message]
Server connection is attempted using port 22. Many servers are setup to use a non-standard port for ssh connections.
Perhaps I've overlooked something, but I don't currently see a way to specify an alternate port to use for the connection.
We're in NZ, not the USA :)
The exclude 'patterns' directive is at a global level. We should be able to define these for a specific target.
Used the following command deploy s1 pull p=/assets quick
.
The command pulled all files from the server and not just the files in the assets directory.
Moved here from a comment on #25:
It would also be really cool if you could specify file type(s) too.
i.e. beam down live -p assets -type jpg -type png
Perhaps this is done with:
beam init
I'm not sure if there is way currently to define location for private key used for server authentication. Can you please confirm?
Beam needs to output a line feed after the transfer progress bar, before emitting "Running target post-deployment commands". I'd do this myself, but haven't learnt the beam internals yet to figure out the best place to add it.
When running PHP 8.0.8 in the CLI beam will no deploy runs into a error. Downgrading it to PHP7 runs it.
Fatal error: Uncaught Error: Class "Symfony\Component\Debug\Exception\FatalThrowableError" not found in phar:///usr/local/bin/beam/vendor/symfony/console/Application.php:2
Stack trace:
#0 phar:///usr/local/bin/beam/bin/beam(2): Symfony\Component\Console\Application->run()
#1 /usr/local/bin/beam(4): require('phar:///usr/loc...')
#2 {main}
thrown in phar:///usr/local/bin/beam/vendor/symfony/console/Application.php on line 2
Installation fails with multiple instances of PHP Warning: file_get_contents(http://beam.heyday.net.nz/beam.phar): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
followed by The download failed repeatedly, aborting.
Some options hyphenate:
beam up live --command-prompt
But most don't:
beam up live --workingcopy
It would be nice if this was consistent.
Looking at an example git
seems to hyphenate consistently...
$ git -h
Unknown option: -h
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[-c name=value] [--help]
<command> [<args>]
I get ansy when I have to hardcode passwords. It would be great if a user can be prompted for the password through DialogHelper::askHiddenResponse(). Haven't had too much of a stab at it yet. Any reasoning why it wasn't included initially?
I've started doing some thinking about handling for maintenance mode. I don't think that the way we do maintenance mode should be integrated into beam as it's too specific to our way of doing things. Here's some thoughts anyway:
Any thoughts anyone?
When the list of files to be modified is large but you're confident it's right, it would be good to have the source/target at the bottom of the list as this is the stuff we should be verifying each time.
I had a problem that appeared to be a bug in a method of the FTP deployment provider, but was actually just missing data caused by a few error-suppressed calls to ftp_* functions. Ideally this should be changed to use exceptions.
!@ftp_login( // Suppress warning
$this->connection,
$this->getConfig('user'),
$this->getConfig('password')
)
...
@ftp_fget(
$this->getConnection(),
$handle,
$this->getTargetFilePath($path),
FTP_BINARY
)
Would be great if rsync parameters could be passed on a per server basis, eg
"servers": {
"test": {
"user": "user",
"host": "some.hostname",
"webroot": "subdomains/staging",
"rsync-params": "--no-perms"
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.