How to remove entire directory from RootDirectory in ZIP extension - visual-studio

I have a build that needs to zip a website project. I am using TfsBuildExtensions.Activities.Compression.Zip to do this.
Unfortunately, it puts the deployed files into ..\_PublishedWebsites\ProjectName\.
So, I have tried to play around with the RemoveRoot property, in the ZIP extension.
If I use the following value:
(New DirectoryInfo(BinariesDirectory & "\_PublishedWebsites")).FullName my zip file contains the ProjectName folder and it then contains the website. Working as intended.
If I use the following value:
(New DirectoryInfo(BinariesDirectory & "\_PublishedWebsites")).GetDirectories().FirstOrDefault().FullName my zip file contains the ENTIRE folder structure, from C:\Builds\... This is definitely not what I expected.
All I want, is that instead of having a folder in my zip, I want the deployed files directly in the zip files root.
How do I do this?

Web Deploy should be your first choice for packaging web sites.
It has a built-in option for zipping the artifacts so you don't need any third-party libraries for this.

Related

No such file or directory in MAC Terminal

I want to access to a directory of an xcode project that contains cocoapods (firebase framework) in my Desktop! But I keep getting: No such file or directory!
I tried to access to another non-project folder and it worked.
It also worked when I tried to access to a project folder that does not contain cocoapods!
I don't know why I could not access to any project folder that contains cocoapods!
When I list the contents of the desktop I got:
There is an # in the properties
What does that means and how can I access to the folder?
I just want to upload it to the Github? any solutions?
BusinessWallet is probably a framework bundle, which means that it is actually just one file, but appears as a directory in Finder. You can copy individual files out of it in Finder.
If you need programmatic access to contents inside the bundle, take a look here: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html

Create a Deployment Package to folder TeamCity

I currently have Team City set up on a server that does:
1) Build the Project
2) Run unit tests
3) Publish the project through IIS if successful
I want to add another step so that a .zip file is produced consisting of what was deployed to a directory on the server running team city. I am to understand that this is possible through artefacts but everything I've tried so far hasn't worked to give me the publish output.
I've tried options such as "** => C:\TC\Test.zip" but that includes the actual code implementation files.
Is there a way in which to publish a zip containing the publish result?
I've been trying this for hours without luck so far so hopefully I can get an answer.
You can use this to zip all files relative to the root of the build:
**/* => artifacts.zip
To zip all files relative to a folder named publish:
publish/**/* => artifacts.zip
If your published files are not included in the zip, they may have been published to someplace outside of the root of the build.

Automatic Extension Update: Unknown Archive type

I have created a new version of my Joomla extension.
Manual upgrade via zip file or the directory works fine.
But the automatic upgrade (which used to work fine before), now gives an error 500 and the following error messages: "Unknown Archive type", "*Update path does not exist" and "Installation unexpectedly terminated: Update path does not exist".
I have no idea why those messages appear.
The update.xml references the correct zip files. Downloading it manually works just fine.
Joomla(/php/apache) has all rights on the folder containing the joomla installation.
After trying the automatic update, the tmp folder contains the downloaded zip archive with the latest extension version, interestingly without the .zip extension. Is the Joomla downloader not correctly naming the file and then failing upon finding that the file doesn't have a .zip extension?`Or what could it be?
Would be very thankful for any ideas...
Edit: My project is hosted on github, and github seems to automatically create a subfolder in the downloaded zip archive, named -.zip.
I'm using a link to the tagged github zip directly in my update.xml
I'm not sure if github always added this folder in the zip file, back when it still worked for me...
Might the Joomla problem have to do with the zip file containng such a folder, and not directly the extension stuff at root level? If so, anybody know if/how I can change github to not create that subfolder?
Right, just had a quick test of this.
I couldn't seem to find out how to automatically zip up a sub folder (there is a way but I need to do some more research/ask questions regarding this), however what you can do is the following:
Create a zip of your Repo
Open the zip, extract the folder you wish to be zipped then zip it
Create a new version and then drag your zip file into the upload box
Publish the release
Here is an example, have a look at the "Creating Releases" sections at the bottom:
https://github.com/blog/1547-release-your-software
Hope this helps
To answer my own question:
Yes, github seems to have recently changed their policy to create a root folder in the zip file, named as the repository the zip file is downloaded for (stupid, if you ask me, since the exact same information is encoded in the zip file name already anyway!).
Edit and Rewrite: It seems that either something changed in Joomla or that if you adhere to a naming convention - namely the root folder in the zip file having the exact extension name (or, I think and have to test, actually the same as the file name, without the version information), then the automatic update will work.
So as in my case, I have a Joomla package; the package is now in a repository pkg_mypkg. The zip file generated by github has the name pkg_mypkg-version.zip (e.g. pkg_myfancyext-1.0.9.zip), and contains a folder named pkg_mypkg. And inside the pkg_mypkg folder is a pkg_mypkg.xml file, the extension manifest. And this actually seems to be the configuration where automatic update works.

Moodle and SCORM .zip packages

I have a scorm package that works in Moodle. However, if unzip it to a folder and then rezip it and try to use it I get the following in Moodle:
"Incorrect file package - missing imsmanifest.xml or AICC structure"
Note, I'm doing this because I was trying to debug it and drilled down to this simple test:
Start with working scorm .zip package "TestCourse.zip"
On mac os x, I double click to extract it to the current folder.
I cmd click on it and selected decompress which makes "TestCourse2.zip"
I try to use "TestCourse2.zip" on Moodle as a scorm package and get the error above.
I tried using a different program to re-zip the folder and got the same results.
What am I missing here?
It's because you rezip the folder itself. You shouldn't do this. You should go into the folder root and then rezip all the contents to generate a new valid package.
imsmanifest.xml must be in the root of the zip file, not inside any folder (and do not change structure in any other way because the imsmanifest have dependencies with the other files).

How do I download an artifact from an archive in TeamCity 6.5? I can't construct the correct URL

I have a zip archive artifact. I'm interested in downloading a single file from that artifact. I can't upload that file outside of the archive right now. The documentation says you download an archive like this
/repository/download/BUILD_TYPE_ID/BUILD_ID:id/ARTIFACT_PATH
So, my URL for that looks like this (and I need anonymous access, so you see the guest flag). And it works!
/repository/download/bt23/2253:id/mypackage.zip?guest=1
However, I want one single file from that artifact. And the docs are confusing on how to do that. They do not specify what replaces <zip or jar archive>. And I am not constructing the whole buildNumber or buildTypeId values properly.
/repository/archive/<zip or jar archive>/buildTypeId/BUILD_TYPE_ID/buildNumber/BUILD_NUMBER/index.html
I tried using zip and `.zip'. I tried filling in the build values directly, but it's much different from the working archive download URL.
/repository/archive/zip/buildTypeId/bt23/buildNumber/2253/myfile.txt?guest=1
Does anyone have working concrete example of the URL for a single file in an archive?
You need to replace <zip or jar archive> with relative path to your artifact. For example, if you want to retrieve file.txt from package.zip which is uploaded under dist directory in your build artifacts you need to use this url:
http://server/repository/archive/dist/package.zip/buildTypeId/bt23/buildNumber/2253/file.txt?guest=1
BTW, a new, more straightforward URL syntax will be available in TeamCity 7.0:
http://server/repository/download/bt23/2253/dist/package.zip!file.txt?guest=1
Old URLs will be supported too.

Resources