The Stack Overflow podcast is back! Listen to an interview with our new CEO.
65

Artifactory is a product by JFrog that serves as a binary repository manager. That said very often one will use a 'artifactory' as a synonym of the more general binary repository, much like many people use Frigidaire or fridge to denote the refrigerator regardless if it is a Frigidaire brand or not. The binary repository is a natural extension to the ...


30

During development you generate a fair amount of different artifacts. These might include: The source code The compiled application A deployable package Documentation and potentially others as well While you could use a source control system to store all of them, it's usually massively inefficient, as source control systems are usually designed to handle ...


18

Wikipedia has a very good answer to this question. Artifact, sometimes also called Derived Object, is a product of some process applied to the Code Repository. Originally they were called Build Artifacts, but as more processes were applied other than build to create them, the first word was simply dropped. The major distinction is that artifacts can be ...


9

Reasons not to store large binaries in a git repository: Everbody cloning your repository will download all those binaries, by default. Binaries, if built regularly, tend to consume massive amounts of storage, compared to source code - git cannot compress them, or calculate deltas, to reduce their size. git goes to great lengths to make sure history is not ...


8

JFrog Artifactory and JFrog Bintray both manage binaries (and any other file type you can think of). I'd like to see them as two different parts of your CI/CD pipeline. Artifactory is mostly meant to be used inside the organization. For managing all binaries coming in as dependencies (like maven central jars) and being produced by your build process (like ...


8

This is a simple thumb rule one could follow Use version control (git, svn, cvs) for the work product created by humans Use artifact management tool (artifactory, nexus, apache archiva) for the software bundle (artifacts) created by the system thru build or packaging process HUMAN ==> System GIT/SVN (build/packaging) ...


7

Mainly an artifact is the result of of a build phase, this mean a package is an artifact of a kind. A package is usually a way to install a software or application, it includes the software itself and some intelligence to setup and configure the software. Calling an artifact a package usually comes when the artifact (whatever it is, from a .deb to a simple ...


6

Version Control (using say git) and Artifact Management (using Artifactory) are complementary. Version control is useful for easily browsing the historical changes and who made them. Artifact management tools can do this but its clunky. Also they dont offer a fine grained view of changes, as one version change might involve a large amount of changes. When ...


6

There's repository managers and Universal package repository managers (UPM). UPM’s can store all your build artifact for Jenkins, teamcity etc. and can generally also act as repository mangers for many different types of binary artifacts Maven, npm, NuGet and more. These would be tools like Jfrog Artifactory, Inedo ProGet, and Sonatype Nexus. A pretty ...


6

What you're after is an Binary repository manager Quoting from Wikipedia with added links: Notable Universal package managers include:[6] Apache Archiva Jfrog's Artifactory Inedo's ProGet Sonatype Nexus I know for sure Nexus and Artifactory match your requirements (even if proper UI is a bit subjective and you mileage may vary).


6

There are two usages of the word “artefact” and one makes source code an artefact while the second makes it not being an artefact: this can indeed be quite confusing! “artefact” as a concrete thing, vs. an ideal thing – This meaning is the common meaning of the word “an object made by a human being, typically one of cultural or historical interest” and is ...


5

It depends on the artifact repository you are using but in general, you tag the artifacts in the repository to indicate their state. This can specify it has passed some level of quality gate, some approval, or what ever is required to move through the stages. I would say you tag the artifact as to it's state, not move between artifact repositories. A ...


5

The way it helped me understand initially, the difference between source code repository and binary repository was to think of it like: * Github or Bitbucket is useful to maintain all 'code' * Jfrog Artifactory is useful to maintain the built 'binary' At least till I was comfortable with these terms! Also, the importance of Artifactory can be understood in ...


5

You could try to run the artifactory file upload in parallel if you are using the Jenkinsfile syntax: https://github.com/jenkinsci/pipeline-examples/blob/master/pipeline-examples/parallel-from-list/parallelFromList.groovy Here is a simpler example to run things in parallel if you only have a fixed number of things you want to do in parallel: parallel ( ...


5

Artifactory is a Binary Repository Manager product from Jfrog. You're right - being a binary repository manager it is typically used to manage storage of artifacts generated and used in the software development process. From Artifactory's main webpage: As the first, and only, universal Artifact Repository Manager on the market, JFrog Artifactory ...


4

I think complicating things is what everybody is getting appreciated for nowadays. I will try to answer this question in short . Source Repository is used for storing code and its versions, while artifactory is used for storing the executable programs that are outputs of those code [ binaries - dll, jar, war, ear,msi,exe files etc] Now the reason why you ...


4

You can use a Git repository (whether it is hosted on Bitbucket or not) as an artifact repository, but you should be aware that: Git was originally made as a version control system for source code, not for (large) binary data, and this is still its main concern. There are extensions that allow working with large files in Git efficiently, e.g. Git LFS, but ...


4

If you are building these artifacts for a release/deploy, you will want them to be in as ready to release of a package as possible. If that is as a .zip, then yes you should create the .zip on the Jenkins server, then upload to Nexus. Your deploy system will then download, decompress, and manipulate the artifact as seen fit. In general, I would only use the ...


3

There are a few main reasons why you would use Artifactory (or any other binary repository manager) over a traditional file storage (in your case NFS). The ability to manage your artifact versions A central location to access artifacts across infrastructure (which you have accomplished with NFS) The ability to download/recreate previous versions of the ...


3

IMO these could be possible synonyms for scripted, in the context of your question here: in a textual format, which you can edit in some editor, like YAML, XML, JSON, PHP, etc. NOT in a binary format, the result of some build process (like a .EXE file, etc). And I bet the reason for the "key prerequisite" (as in your quopted text), is that in the end you ...


3

I suppose the answer may vary from place to place. Where I work at the moment an artifact is anything consumed by some other entity, except for the source code used for development - this goes into source control. This includes binaries of the product or other needed products, libraries, object files, test artifacts like media files or test data. Source ...


3

In DevOps, it is not always about just piciking the right tool, but understanding what is happening also in terms of the workflow. Interesting aspects are here delivered value (like saved time) and how the process can be scaled if you get more customers. Without knowing further details, I would suggest to investigate what your customers do after they have ...


2

An artifact Is something that is produced/generated/crafted out of a specific process Jar out of a Java project build. Question out of your mind Car out of a factory New song A repository Is a receptacle where things are persisted Github for a Java project. StackExchange for your daunting questions IN THEORY, an Artifact-ory ...


2

There are two options when publishing artifacts: Server and File Share. If you publish to the server, they are stored in the TFS database. You can't configure the location, however you can configure retention policies to ensure that old builds aren't kept around forever. If you publish to a file share, they're stored on, well, a file share.


2

In many cases compilers are used as-is, already packaged by 3rd parties. When changing the structure of the build systems changing compilers usually translates into switching to a different version, but which is also pre-packaged. If this is your use case the artifact repository offers a single advantage: availability. Even if the provider decides (for ...


1

One solution that might fit your scenario are environment modules. Given that you only need the compilers on Linux, and have access via a network share (nfs/Samba). To load a toolchain into your terminal, just type module load gcc and let autocompletion fill in the version number. It is basically Python’s virtualenv for any Linux program/toolchain/SDK. I ...


1

What is Git-LFS? Git Large File Storage (LFS) prevents that large files need to be stored in git itself. https://git-lfs.github.com/ Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub ...


Only top voted, non community-wiki answers of a minimum length are eligible