summaryrefslogtreecommitdiff
path: root/build-farm.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Update version to 0.2.2HEADmasterAlex Kost2018-12-181-1/+1
|
* Update Cuirass evaluations for the latest APIAlex Kost2018-12-181-1/+1
| | | | | | | | | | Follow the changes introduced by <https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git/commit/?id=8d40c49170971ad7bbf8b97336934dbb3d949fc1>. * build-farm-evaluation.el: Handle the new 'in-progress' an 'checkouts' parameters. * build-farm.el: Update required BUI version to 1.2.1 as its new feature is used to display 'commit' parameter in the evaluation list buffer.
* Update version to 0.2.1Alex Kost2018-09-091-1/+1
| | | | | This should have been done before "v0.2.1" tag was made on the previous commit, but well...
* build: Generalize making "latest builds" buttonsAlex Kost2018-09-061-1/+1
| | | | | | | | | | | | | * build-farm-build.el (build-farm-build-button-action): Add optional 'type' argument. (build-farm-define-build-button): New macro. Use it to generate buttons and actions for them for 'system' and 'job'. (build-farm-info-insert-builds-button): Remove. * build-farm-jobset.el (build-farm-cuirass-jobset-args-info-format): Use 'build-farm-system' button instead. * build-farm.el (build-farm-info-job): Inherit 'button' face.
* 'build-farm-current-url' returns default URL as a fallbackAlex Kost2018-09-061-1/+12
| | | | | * build-farm.el (build-farm-current-url): Return 'build-farm-url' if current buffer is not a "build-farm" buffer.
* Add another system supported by Guix ("aarch64-linux")Alex Kost2018-09-051-2/+9
| | | | * build-farm.el (build-farm-guix-system-types): Add "aarch64-linux".
* Fix 'build-farm-job-regexp'Alex Kost2018-08-271-1/+5
| | | | | | | | This is a followup to commit 4fff68f8401a772d92a8698e0391d260fae8ef69. * build-farm.el (build-farm-job-regexp): Construct regexp depending on 'build-farm-guix-system-types' and 'build-farm-nix-system-types' variables. Otherwise job specification may be miss-interpreted.
* Update version to 0.2Alex Kost2018-08-261-1/+1
|
* Add system buttons to Jobset InfoAlex Kost2018-08-261-1/+1
| | | | | | | | | | * build-farm.el (build-farm-info-system): Inherit from 'button' face. * build-farm-build.el (build-farm-system): New button type. (build-farm-build-button-system-action) (build-farm-info-insert-system-button) (build-farm-info-insert-systems): New procedures. * build-farm-jobset.el (build-farm-cuirass-jobset-args-info-format): Use 'build-farm-info-insert-systems'.
* Add interface for Cuirass evaluationsAlex Kost2018-08-261-1/+2
| | | | | | | | | | | * build-farm-url.el (build-farm-evaluation-url) (build-farm-latest-evaluations-api-url): New procedures. * build-farm-evaluation.el: New file. (build-farm-latest-evaluations): New command. * build-farm-popup.el (build-farm-popup): Add sub-popup for evaluations. (build-farm-evaluation-popup-maybe) (build-farm-popup-format-number-of-evaluations) (build-farm-popup-latest-evaluations): New procedures.
* Insert button for Cuirass jobset when neededAlex Kost2018-08-261-3/+17
| | | | | | | | | Cuirass and Hydra jobsets are different things, so make a button for Cuirass jobset specifically. * build-farm.el (build-farm-info-insert-cuirass-jobset): New procedure. * build-farm-build.el (build-farm-build-info-insert-jobset): Use it if current build farm type is 'cuirass'.
* Cache cuirass jobsetsAlex Kost2018-08-261-23/+41
| | | | | | | | * build-farm.el (build-farm-get-entries): Adjust to handle Hydra projects and Cuirass jobsets similarly. (build-farm-get-project-entries-once): Rename to... (build-farm-get-root-entries-once): ... this. (build-farm-project-names, build-farm-jobset-names): Adjust accordingly.
* Read project/jobset according to farm type (Hydra or Cuirass)Alex Kost2018-08-261-14/+26
| | | | | | | | | | | | | | * build-farm.el (build-farm-check-project-support): New procedure. (build-farm-read-project, build-farm-read-jobset): Use keyword arguments. * build-farm-build.el (build-farm-build-latest-prompt-args): Prompt for project only for Hydra farm. * build-farm-popup.el (build-farm-popup-read-jobset): Likewise. (build-farm-popup-read-project): New procedure. * build-farm-project.el (build-farm-projects, build-farm-project): Check if current farm type is Hydra.
* Rename 'jobset' interface to 'hydra-jobset'Alex Kost2018-08-261-2/+2
| | | | | | | | | | | | | | | | | | | | Cuirass and Hydra jobsets are completely different, so there will be a separate interface for Cuirass jobsets. * build-farm.el: Update Emacs requirement to 24.4 because 'subr-x' library is needed now. (build-farm-info-insert-jobset): Rename to... (build-farm-info-insert-hydra-jobset): ... this. * build-farm-build.el (build-farm-build-info-insert-jobset): Adjust accordingly. * build-farm-project.el (build-farm-project-info-insert-jobset): Likewise. * build-farm-url.el (build-farm-jobset-api-url): Rename to... (build-farm-hydra-jobset-api-url): ... this. * build-farm-jobset.el: Rename 'jobset' to 'hydra-jobset' everywhere.
* build: Add "More info" button when neededAlex Kost2018-08-171-0/+4
| | | | | | | | * build-farm.el (build-farm-current-url-type): New procedure. * build-farm-build.el (build-farm-build-info-insert-more-button) (build-farm-build-info-update-build): New procedures. (build-farm-build-info-format): Add 'build-farm-build-info-insert-more-button'.
* Modify a message for the 'fake' search typeAlex Kost2018-07-271-3/+6
| | | | | * build-farm.el (build-farm-message): Adjust the message. (build-farm-list-describe): Adjust the commentary.
* Add popup interface ('build-farm' command)Alex Kost2018-07-271-3/+7
| | | | | * build-farm-popup.el: New file. * build-farm.el: Add 'magit-popup' to package requirements.
* Add 'build-farm-build' commandAlex Kost2018-07-271-0/+7
| | | | | | | * build-farm.el (build-farm-get-entries-1): Wrap a single ID entry into a list. * build-farm-build.el (build-farm-build-search-types): Add 'id' search type. (build-farm-build): New command.
* Add jobset buttonAlex Kost2018-07-271-1/+15
| | | | | | | | * build-farm.el (build-farm-info-jobset): Inherit from 'link' face. (build-farm-jobset): New button type. (build-farm-info-insert-jobset): New procedure. * build-farm-build.el (build-farm-build-info-insert-jobset): Use it. * build-farm-project.el (build-farm-project-info-insert-jobset): Use it.
* Add project buttonAlex Kost2018-07-271-1/+19
| | | | | | | | * build-farm.el (build-farm-info-project): Inherit from 'button' face. (build-farm-project-button-action): New procedure. (build-farm-project): New button type. * build-farm-build.el (build-farm-build-info-insert-project): Use it. * build-farm-jobset.el (build-farm-jobset-info-insert-project): Use it.
* Add 'build-farm-project' commandAlex Kost2018-07-271-6/+11
| | | | | | * build-farm.el (build-farm-get-entries): Add 'id'/'name' search types for 'project' entry type. * build-farm-project.el (build-farm-project): New command.
* Move and rename some info facesAlex Kost2018-07-271-0/+23
| | | | | | | | | | * build-farm-build.el (build-farm-build-info-project) (build-farm-build-info-jobset, build-farm-build-info-job) (build-farm-build-info-system): Move and rename to... * build-farm.el (build-farm-info-project) (build-farm-info-jobset, build-farm-info-job) (build-farm-info-system): ... this.
* Complete jobset names when possibleAlex Kost2018-07-271-5/+15
| | | | | | | * build-farm.el (build-farm-jobset-names): New function. (build-farm-read-jobset): Add 'project' argument. * build-farm-build.el (build-farm-build-latest-prompt-args): Adjust accordingly.
* Do not hardcode project namesAlex Kost2018-07-271-4/+20
| | | | | | | | | Receive them from a build farm instead. * build-farm.el (build-farm-projects): Remove variable. (build-farm-get-project-entries-once) (build-farm-project-names): New procedures. (build-farm-read-project): Use it.
* Cache projectsAlex Kost2018-07-271-8/+50
| | | | | | | | * build-farm.el (build-farm-get-entries-1): New procedure. (build-farm-get-entries): Use it. Cache projects if needed. (build-farm-cache): New variable. (build-farm-cache-get, build-farm-cache-set): New procedures. (build-farm-clear-cache): New command.
* Fix checkdoc warningsAlex Kost2018-07-271-1/+1
|
* Factorize defining system typesAlex Kost2018-07-271-10/+6
| | | | | * build-farm-url.el (build-farm-url-package-manager): New function. * build-farm.el (build-farm-system-types): Use it.
* Use per-buffer build farm URLAlex Kost2018-07-271-11/+23
| | | | | | | | | | | | | | | | | | | | | | | | Previously, a single global 'build-farm-url' variable was used everywhere. But this is not correct: when you change this url, it should take effect only for the future requests, and the existing Farm buffers should use the previous url. So this root url should be local for every build/jobset/project list/info, which is accomplished by this commit. * build-farm-url.el (build-farm-url): Add 'root-url' argument. (build-farm-api-url, build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url) (build-farm-jobset-url, build-farm-jobset-api-url) (build-farm-project-url): Add 'root-url' keyword argument. * build-farm.el: Define accessors for entry args. Specifically... (build-farm-current-url): New function. (build-farm-get-entries, build-farm-get-display, build-farm-message) (build-farm-search-url): New 'root-url' argument. * build-farm-build.el: Adjust to use 'root-url' arguments where appropriate. * build-farm-jobset.el: Likewise. * build-farm-project.el: Likewise.
* Add and use 'build-farm-get-display'Alex Kost2018-07-271-0/+8
| | | | | | | | | | | | | Instead of 'build-farm-ENTRY-TYPE-get-display' functions. * build-farm.el (build-farm-get-display): New procedure. * build-farm-build.el (build-farm-build-get-display): Remove. (build-farm-build-info-insert-builds-button) (build-farm-latest-builds, build-farm-queued-builds): Adjust accordingly. * build-farm-jobset.el (build-farm-jobset-get-display): Remove. (build-farm-jobsets): Adjust accordingly. * build-farm-project.el (build-farm-project-get-display): Remove. (build-farm-projects): Adjust accordingly.
* Distinguish system types supported by Nix and GuixAlex Kost2018-07-271-5/+29
| | | | | | | | * build-farm.el (build-farm-system-types): Remove variable. (build-farm-guix-system-types, build-farm-nix-system-types): New variables. (build-farm-system-types): New function. (build-farm-read-system): Use it. (build-farm-job-regexp): Adjust to avoid using system types.
* Do not require match for system/project readersAlex Kost2018-07-161-0/+2
| | | | | | * build-farm.el (build-farm-read-project, build-farm-read-system): Do not require match as the input may not necessarily be one of the completions.
* Add interface for projects ('build-farm-projects' command)Alex Kost2018-07-161-4/+5
| | | | | * build-farm-url.el (build-farm-project-url): New function. * build-farm-project.el: New file.
* Move all url procedures to "build-farm-url.el"Alex Kost2018-07-161-100/+13
| | | | | | | | | | | | | * build-farm.el (build-farm-url-alist, build-farm-guess-url) (build-farm-urls, build-farm-url, build-farm-read-url) (build-farm-set-url, build-farm-type-by-url, build-farm-api-url) (build-farm-receive-data): Move to... * build-farm-build.el (build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url): Move to... * build-farm-jobset.el (build-farm-jobset-url) (build-farm-jobset-api-url): Move to... * build-farm-url.el: ... here. New file.
* Add 'build-farm-set-url' commandAlex Kost2018-07-161-0/+14
| | | | | * build-farm.el (build-farm-read-url): New function. (build-farm-set-url): New command.
* Try to guess a package manager and a build farm urlAlex Kost2018-07-161-8/+29
| | | | | | | | | * build-farm-utils.el (build-farm-preferred-package-manager): New variable. * build-farm.el (build-farm-urls): Rename variable to... (build-farm-url-alist): ... this. (build-farm-guess-url, build-farm-urls, build-farm-type-by-url): New procedures.
* Initial commitAlex Kost2018-07-161-0/+361
The code has been copied from Emacs-Guix package and renamed from 'guix-hydra-...' to 'build-farm-...'. New files: * build-farm.el * build-farm-build.el * build-farm-jobset.el * build-farm-utils.el * .gitignore