-
-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
228 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,3 +10,4 @@ settings.env | |
settings.toml | ||
|
||
.metals | ||
ran_as_gitpod_prebuild |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
### What are Gitpod prebuilds? | ||
|
||
Gitpod prebuilds is a feature that allows you to prebuild your workspace before you actually need it. This means that when you open your workspace, it will be ready to use immediately, without having to wait for the build process to complete. This can save you a lot of time and make your development process more efficient. | ||
|
||
### How lila-docker uses Gitpod prebuilds? | ||
|
||
lila-docker uses Gitpod prebuilds to speed up the development process. When gitpod prebuilds are enabled for lila-docker, Gitpod will automatically build the workspace(clone repos, pull docker images, populate db and compile lila) in the background, so that it is ready to use as soon as you open it. | ||
|
||
### How to enable Gitpod prebuilds for lila-docker? | ||
|
||
To enable Gitpod prebuilds for lila-docker, follow these steps: | ||
|
||
1. Fork the lila-docker repository, if you haven't already. | ||
![Fork](https://github.com/user-attachments/assets/45ceef96-8586-4db1-adb1-9213c95dbbe5) | ||
|
||
2. After forking the repository, go to https://gitpod.io/repositories and add your fork of the lila-docker repository. | ||
![Add repository](https://github.com/user-attachments/assets/78233aa9-1feb-4970-a8d3-c23536840c6f) | ||
![Add your fork](https://github.com/user-attachments/assets/e654993d-b618-4f9e-a04c-47badee666ef) | ||
|
||
3. Once the repository is added, go to the repository settings and then to the "Prebuilds" tab and enable prebuilds for the repository, set commit interval to 0 and choose your preferred machine type. | ||
![Enable prebuilds](https://github.com/user-attachments/assets/d2f340a1-0c63-49af-839b-6d4f668d53f5) | ||
|
||
4. Now, go to https://gitpod.io/prebuilds and run a prebuild for the repository you just added. | ||
![Run prebuild](https://github.com/user-attachments/assets/bf3c4284-23c7-49c5-9329-77b683a8812f) | ||
|
||
5. Once the prebuild is complete, you can open the workspace and start using it immediately. | ||
|
||
That's it! You have now enabled Gitpod prebuilds for lila-docker and can enjoy a faster and more efficient development process. | ||
To start a new workspace with prebuilds, go to https://gitpod.io/workspaces and open the workspace for your fork of the lila-docker repository or you can use `https://gitpod.io/new/#<link-to-your-fork>`. Eg: https://gitpod.io/new/#https://github.com/your-username/lila-docker/tree/main | ||
|
||
### Tips for using Gitpod prebuilds with lila-docker | ||
|
||
Here are some tips for using Gitpod prebuilds with lila-docker: | ||
|
||
- Try to keep your prebuilds up to date by running them regularly by following step 4 and don't forget to update your fork of the lila-docker repository. | ||
- Don't use prebuilds if they are 4-5 days old, we recommend to run a new prebuild or to start a new workspace without prebuilds from the `github.com/lichess-org/lila-docker` repository instead of your fork. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -e | ||
|
||
cd "$(dirname "$0")" | ||
initial_dir=$(pwd) | ||
|
||
# Check if --pull flag is passed | ||
pull_flag=false | ||
if [[ $1 == "--pull" ]]; then | ||
pull_flag=true | ||
fi | ||
|
||
for dir in ./repos/*; do | ||
# echo "Checking $dir" | ||
if [[ -d "$dir" ]]; then | ||
cd "$dir" | ||
|
||
# Format the directory name | ||
dir=$(printf "%-20s" "$dir") | ||
echo -n "$dir: " | ||
|
||
# check if the directory is a git repo | ||
if [[ ! -d ".git" ]]; then | ||
echo "π‘ not a git repo" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
# check if the git repo is dirty | ||
if [[ $(git diff --stat) != '' ]]; then | ||
echo "π‘ repo has uncommitted changes" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
# check if repo has a main branch or master branch | ||
main_or_master="" | ||
if [[ $(git branch --list main) ]]; then | ||
main_or_master="main" | ||
elif [[ $(git branch --list master) ]]; then | ||
main_or_master="master" | ||
else | ||
echo "π‘ no main or master branch" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
|
||
# check if repo has an upstream or origin remote | ||
upstream_or_origin="" | ||
if [[ $(git remote -v | grep upstream) ]]; then | ||
upstream_or_origin="upstream" | ||
elif [[ $(git remote -v | grep origin) ]]; then | ||
upstream_or_origin="origin" | ||
else | ||
echo "π‘ no upstream or origin remote" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
|
||
git fetch "$upstream_or_origin" "$main_or_master" 2>/dev/null | ||
|
||
# if repo is not on main or master branch, don't do anything | ||
current_branch=$(git branch --show-current) | ||
if [[ $current_branch != "$main_or_master" ]]; then | ||
echo "π£ not on $main_or_master branch ($current_branch)" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
# check if repo is up to date | ||
if [[ $(git rev-list HEAD...$upstream_or_origin/$main_or_master --count) -eq 0 ]]; then | ||
echo "π’ up to date" | ||
cd "$initial_dir" | ||
continue | ||
fi | ||
|
||
if [[ $pull_flag == true ]]; then | ||
echo -n "pulling changes... " | ||
git pull &>/dev/null && echo "β done" || echo "β failed" | ||
else | ||
echo "π‘ behind by $(git rev-list HEAD...$upstream_or_origin/$main_or_master --count) commits" | ||
fi | ||
|
||
cd "$initial_dir" | ||
fi | ||
done |