Comments (2)
thanks for reporting this @wtraylor! The motivation behind the install.sh
script is to address problems that some users have when installing via pip
. For users not familiar with python or how pip works, the curl | sh
method is convenient, as they have already installed docker (whose installer has better UX than pip
), so using install.sh
is straight-forward in this scenario.
Regarding the problems with uses: sh
inside a container, the specific example can be solved by doing:
steps:
- uses: docker://docker:19.03.10
args: ["--version"]
More fundamentally, one of the main goals of having container-native pipelines is to make them reproducible. By using sh
to invoke commands that are expected to be available in the host, the probability of having a pipeline fail is higher. This is why we note on the documentation that the use of uses: sh
should be minimized. Other additional "best practices" for steps with uses: sh
would be to 1) only reference paths that are within the workspace or bind-mounted folders (via the dir
option); and 2) only invoke POSIX/UNIX commands. These don't guarantee reproducibility but minimize errors. Maybe we should add this to the docs as well.
does this make sense?
from popper.
does this make sense?
Yes, that makes sense. I see that it is very important to provide an easy installation method through install.sh
. On the other hand, as long as uses: sh
is in Popper’s feature set (whether using it is good practice or not), it should just work, no matter by which method Popper has been installed. I think that is very important.
One way out of the dilemma would be to fail with an error message if Popper running in Docker enconunters uses: sh
and kindly ask the user to install Popper through PIP.
from popper.
Related Issues (20)
- cli: k8s: try scheduling the init pod on the master node at the very last HOT 3
- cli: k8s: allow users to set options for creating host path volumes HOT 3
- cli: k8s: add tests for building using buildkit HOT 2
- cli: exporter support gitlab-ci
- proposal: REUSE compliance HOT 1
- proposal: Load image from file HOT 1
- cli: add support for a 'matrix' option
- example: integration testing with docker-compose
- cli: add support for running workflow behind proxy
- packaging: Evaluate Python project best practices for code sustainability HOT 1
- CLI: Substitutions not substituted everywhere HOT 2
- CLI: bug with boolean docker options when substituting HOT 1
- Read env vars and substitutions from file
- exporter: add popper workflow to drone workflow translator
- translator: support the dir attribute in Popper-To-Drone translator
- exporter: error while running popper translate HOT 1
- translator: support `env` attribute in Popper-to-Drone translator
- translator: Add support for `uses: sh` to Drone's Exec Pipeline translation
- translator: add docs for popper to drone translator
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from popper.