I've written code completely in Hack, and I would like to use Travis CI to test my builds on various HHVM versions with Hack enabled. Does Travis CI support Hack when I select HHVM as the testing platform or is it just PHP?
It provides both hhvm, which can run Hack, and hh_client which checks it.
However, Travis is running Ubuntu 12.04. This means you can only get HHVM 3.6 and will be unable to use any of the more recent features in both HHVM and Hack.
Related
Absolute beginner in DevOps here. I have a Gitlab repo that I would like to build and run its tests in the Gitlab pipeline CI.
So far, I'm only testing locally on my machine with a specific runner. There's a lot information out there and I'm starting to get lost with what to use and how to use it.
How would I go about creating a container with the tools that I need ? (VS compiler, cmake, git, etc...)
My application contains an SDK that only works on windows, so I'm not sure building on another platform would work at all, so how do I select a windows based container?
How would I use that container in the yml file in gitlab so that I can build my solution and run my tests?
Any specific documentation links or suggestions are welcomed and appreciated.
How would I go about creating a container with the tools that I need ? (VS compiler, cmake, git, etc...)
you can install those tools before the pipeline script runs. I usually do this in before_script.
If there's large-ish packages that need to be installed on every pipeline run, I'd recommend that you make yourown image, with all the required build dependencies, push it to GitLab and then just use it as your job image.
My application contains an SDK that only works on windows, so I'm not sure building on another platform would work at all, so how do I select a windows based container?
If you're using gitlab.com - Windows runners are currently in beta, but available for use.
SaaS runners on Windows are in beta and shouldn’t be used for production workloads.
During this beta period, the shared runner quota for CI/CD minutes applies for groups and projects in the same manner as Linux runners. This may change when the beta period ends, as discussed in this related issue.
If you're self-hosting - setup your own runner on Windows.
How would I use that container in the yml file in gitlab so that I can build my solution and run my tests?
This really depends on:
previous parts (you're using GL.com / self hosted)
how your application is built
what infrastructure you have access to
What I'm trying to say is that I feel like I can't give you a good answer without quite some more information
In Jenkins I would like to use docker with pipeline.
That documentation says:
Starting with Pipeline versions 2.5 and higher, Pipeline has built-in
support for interacting with Docker
Our Jenkins is using version 2.305 (2021-08-03) right now. The latest version of jenkins currently is 2.340 (2022-03-22).
How can I find the version of "Pipeline" used at our system?
I found quite a few installed plugins called "Pipeline: ..." with various versions. Which one should be 2.5 in order to make the docker feature available?
Oh, I found it:
https://plugins.jenkins.io/workflow-aggregator/
https://github.com/jenkinsci/workflow-aggregator-plugin/blob/master/CHANGELOG.md
The Plugin was simply not installed at all. (Only many of it's dependencies where installed independently.)
I have a problem. I need to build a job in my Jenkins server hosted by macmini (localhost) to automatic build a deploy for my mobile hybrid apps. That's apps was building with ionic2, and need a deploy for Android (apk) and for iOS (ipa).
But when i run a build from Jenkins, with this shell command
I get this error
that's not all... because i try to execute, from the jenkins folder, the npm i and the result was this:
When i try to build my application from other "folder" and not from jenkins, they works correctly. How i can solve?
Without more information hard to say; you can either just script the things you do when you deploy "manually", or you might want to try a CLI tool like https://www.bitrise.io/cli or https://fastlane.tools which can auto-scan your project and configure a suitable configuration which is then easier to tweak.
In case of Bitrise CLI the base config can be generated with bitrise init in the repo root, and you can also use a visual editor to modify your configuration: https://discuss.bitrise.io/t/how-to-experiment-with-bitrise-configs-locally-on-your-mac-linux/1751
After a lot of time, just find the solution. Jenkins have a own "tools management". So i need to install, into jenkins, a property version of nodeJS, Npm and all other tools i need to deploy the application.
So, first of all you need to install property plugin (in my case nodejs).
After this, going into Jenkins Management System and configure a NodeJS version. That's all
I would like to setup a documentation CI build, i.e. a build that requires nothing more than ASCIIDOC, TeX, XSLT (Saxon) et cetera.
Now I am aware of [1] which states that regular apt commands can be used for hopefully installing any of this dependencies.
But how do do so? It appears cumbersome to change .travis.yml, push a build and start again if there was a typo or other error in the install command.
Thus I was looking into 'travis console' to (somehow) interactively test the setup dependency process - with no luck.
What is the recommended way of setting up dependencies (packages)?
Edit:
The document generation process is driven by a simple hand crafted Makefile. The Makefile invokes various programs, especially asciidoc, python, TeX, DBLaTeX, libxslt, Saxon. Basic TeX is not enough as some fancy TeX packages are required as well. The installation of DBLaTeX is naturally cumbersome.
[1] http://docs.travis-ci.com/user/installing-dependencies
If you want to run Travis locally on your own virtual machine, you may want to look at Travis Build. Travis Build allows you to generate the shell script that performs the Travis build. Setting this up is a bit cumbersome and may not be worth it unless you have a very complicated build.
The documentation build that you're describing seems relatively straightforward (although you're not giving us much details). I'd say you should be able to put those dependencies together by trial and error.
There's also a middle ground between Travis Build and pure trial-and-error. Use Vagrant to set up a virtual machine with Ubuntu Precise (same version as Travis is using). Then figure out which packages you need to install (apt-get install ...) to get your build running on the virtual machine. Then replicate those steps in your .travis.yml and you should be good to go.
Currently travis supports linux (ubuntu?) and mac.
I'm currently exploring nix. I think it's a powerful way to declare the global state of your system. It's available at various level:
nix: package
nixos: machine
nixops: deployment
With the current state, I could install nix the package manager on a linux vm and get all the packages I need, great!
In my ideal world, I could do the same at the machine or at the deployment level (machine[s]).
So my question is: When will travis-ci will support NixOS? When will travis-ci will support multiple machine setup (let's say with NixOps) ?
it would be nice to be able to share /nix/store between travis builds. but for nixpkgs we're already try to build changes using nox tool.
https://github.com/NixOS/nixpkgs/blob/master/.travis.yml