Meilix is developed in FOSSASIA and is deployed as a release on Github, but the download speed on GitHub for large files is slow. Alternatively deployment can be done on 3rd party servers. transfer.sh offers a good service for a start, but they only have a reduced storage for heavy usage such as what is required for Meilix. file.io is a good alternative. file.io has API features which can be used in .travis.yml to deploy meilix. For the time being, we are deploying a generator branch to file.io
Changes made in the .travis.yml
We need to edit the .travis.yml to deploy the artifact on file.io
deploy: provider: script script: curl -F "file=@/home/travis/$(image_name)" https://file.io on: branch: generator
We need to edit the deploy attribute in the travis to get the deployment done in file.io. Query contains the address of the file which needs to be uploaded on file.io. Then the branch name is provided on which deployment needs to be done.
Output:
Travis executes the command to deploy the application.
{"success":true,"key":"5QBEry","link":"https://file.io/5QBEry","expiry":"14 days"}
success: true the artifact is successfully deployed.
key and link: gives the link from where the ISO can be downloaded.
expiry: tell the number of days after which the ISO will be deleted and by default it is set to 14 days.
We can manually input expiry parameter to declare the expiry time.
script: curl -F "file=@/home/travis/$(image_name)" https://file.io/?expires=1w
This will set the expiry time to seven days. If you set it with w, it will be number of weeks, m will be for number of months, y will be number of years.
file.io solved the most important issue of meilix deployment and this approach can be use several different project of FOSSASIA for the deployment purpose.
References:
- File Sharing file.io
- Basics of file.io: https://www.cs.fsu.edu/~myers/c++/notes/fileio.html
- Easy and fast file sharing from transfer.sh