Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New workstations #54

Open
wants to merge 148 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
761fae9
Remove things I'm pretty confident we don't want
moleske Jul 15, 2022
acd2c0c
Initial new script
moleske Jul 15, 2022
32ba0b2
missing frontend non interactive
moleske Jul 15, 2022
386221c
exec $SHELL in the middle of a script ends the script
moleske Jul 15, 2022
765d9bb
print out more versions, get bosh and credhub and cf cli
moleske Jul 22, 2022
3963f37
forgot sudo when moving to usr/bin
moleske Jul 22, 2022
16c12fd
use bin/bash
moleske Jul 22, 2022
07151ea
fix cf cli path
moleske Jul 22, 2022
048a176
if you're going to switch renaming after chmod, you should pay more a…
moleske Jul 22, 2022
0676b56
install go from website, use sh, tell folks to source bashrc when done
moleske Jul 22, 2022
4f22f43
initial attempt at pipeline to create and destroy
moleske Jul 27, 2022
0a4350d
Updating docs to include flag `--boot-disk-type=pd-balanced`
xandroc Jul 29, 2022
e396e1e
Setting boot-disk-type in the pipeline
xandroc Jul 29, 2022
fa23cc6
add CF to path in bashrc
xandroc Jul 29, 2022
2b7c8b9
Revert "add CF to path in bashrc"
xandroc Jul 29, 2022
cfb9838
Adding helper scripts
xandroc Jul 29, 2022
9c9af63
remove unneeded source of bashrc
xandroc Jul 29, 2022
ba214b0
use same style for multiline adding to shellrc
moleske Jul 30, 2022
32792ff
install git-together
moleske Jul 30, 2022
5a290b4
bump to go 1.18.5
moleske Aug 1, 2022
4a66d64
add round_up_bosh_lites alias and git config and clone capi-ci
moleske Aug 1, 2022
55a65ae
updating pipeline with base image, can be run at set intervals to kee…
xandroc Aug 5, 2022
18d311c
letting jq and pkg-config install silently
xandroc Aug 5, 2022
4d5467d
set source vm zone
xandroc Aug 5, 2022
42f7a33
Add more tools
moleske Sep 6, 2022
869fd25
check if capi-ws-image-latest exists and delete before creating a new…
moleske Sep 9, 2022
db411d4
go 1.19.3
moleske Nov 7, 2022
4af5fd8
Remove initial pipeline jobs and only use create latest workstation
moleske Nov 21, 2022
fb45dbf
Add luan neovim dependencies
moleske Dec 14, 2022
776ab02
bump a bunch of dependencies
moleske Jan 13, 2023
fb1822d
fix om download
moleske Jan 13, 2023
d478c79
move clones higher up in script
moleske Jan 26, 2023
38adbea
get out of directory before deleting said directory
moleske Jan 26, 2023
4674bbc
git clone repos with SSH
sethboyles Feb 2, 2023
ccf426f
Have .ruby-version match capi-release
sethboyles Feb 2, 2023
8c2e680
Fix bad merge--update git clone in correct spot
sethboyles Feb 2, 2023
0513078
Pull ruby version directly from capi-release
sethboyles Feb 2, 2023
594ff99
use set -x for better debugging
sethboyles Feb 2, 2023
14db2a9
Clone with https but set to SSH remote afterwards
sethboyles Feb 2, 2023
ce8e5c6
use bash instead of sh in install script
sethboyles Feb 2, 2023
73213d2
Install git-duet and update git-authors
sethboyles Feb 6, 2023
db02f0d
all git remotes use SSH for pushing
sethboyles Feb 6, 2023
2f706c0
Remove luan's nvim config since it is deprecated
sethboyles Feb 6, 2023
615c199
Add set -e to setup script
sethboyles Feb 6, 2023
ee34559
Fix issue with xterm choice not being available, set to xterm-256color
sethboyles Feb 6, 2023
d1ed87f
Newer postgres uses scram-sha-256 instead of md5
sethboyles Feb 7, 2023
23086b9
Fix cloning of capi-ci
sethboyles Feb 7, 2023
0d5113e
Set vim to be git editor and move git duet install before cli
dalvarado Feb 7, 2023
2a43a4a
Wait 30 seconds to make sure all files are written before machine image
dalvarado Feb 7, 2023
98f0256
Use true instead of 1 for GIT_DUET_CO_AUTHORED_BY
dalvarado Feb 7, 2023
7f9a3c2
Allow claim_bosh_lite to work with git duet
dalvarado Feb 8, 2023
55a03c6
Allow unclaim_bosh_lite to work with git duet
dalvarado Feb 8, 2023
8dec8a6
Clone CATS, BARAS, and SITS to workstation
dalvarado Feb 8, 2023
badbea9
add clone capi-env-pool to script
MerricdeLauney Feb 8, 2023
8c8f059
Add gst alias
MerricdeLauney Feb 8, 2023
4be6bfd
Revert "add clone capi-env-pool to script"
MerricdeLauney Feb 8, 2023
4663e17
Use capi-env-pool deploy key to attempt to clone repo
sethboyles Feb 13, 2023
cdfe213
set GIT_DUET_CO_AUTHORED_BY back to 1
sethboyles Feb 13, 2023
d98e734
Change github clone to ssh from https
sethboyles Feb 13, 2023
28d4a2a
add github key to known_hosts file
sethboyles Feb 13, 2023
9f31dc3
Remove VM Delete at Job Start (#48)
xandroc Feb 14, 2023
ffa5c30
Add github.com to list of known hosts (#49)
xandroc Feb 14, 2023
b9a25df
Import capi-env-pool repo as resource (#50)
xandroc Feb 14, 2023
f3bb37c
Added capi-env-pool resource (#51)
xandroc Feb 14, 2023
60e4d3e
Add workaround for bug in git duet v 0.9.0 that causes a panic
MerricdeLauney Feb 15, 2023
69a34c4
install fly and direnv
MerricdeLauney Feb 15, 2023
4d5e88c
bump to go 1.20.1
moleske Feb 17, 2023
1b50a97
Configure git duet to specify authors on per a repo basis
moleske Feb 21, 2023
728f1ba
Remove vestigial bosh lite pool key
moleske Feb 21, 2023
0947321
Set branch for capi env pool
dalvarado Feb 21, 2023
a66f165
Add syntax highlighting for nvim
dalvarado Feb 21, 2023
950fea1
fix vim-nvim typo
dalvarado Feb 21, 2023
45f16a6
Remove commented oput line to install all languages for treesitter
moleske Feb 21, 2023
11c29cd
Remove automated install of nvim plugins
dalvarado Feb 21, 2023
7bc0276
set core editor to nvim
moleske Feb 22, 2023
764dd77
Add solargraph and lspconfig for ruby autocomplete
moleske Feb 22, 2023
e13b4fd
Add gopls for go autocomplete
moleske Feb 22, 2023
f753af2
Add completion
moleske Feb 22, 2023
4c23f97
Install gopls for nvim
moleske Feb 22, 2023
6bd15bf
Move gopls install to be after go added to the path
moleske Feb 22, 2023
2140c10
Add commenting
moleske Feb 22, 2023
258c04c
add fuzzysearch
moleske Feb 22, 2023
26ebbff
add keybindings for lsp server so gd for go to definition new-worksta…
moleske Feb 23, 2023
5ee45cb
Add instructions on how to add nvim plugins
MerricdeLauney Feb 23, 2023
31fbeb3
Add neotest for running tests
MerricdeLauney Feb 24, 2023
d92ed5a
Turn on line numbers and auto install plugins
moleske Feb 24, 2023
1df851a
Auto installing plugins didn't work as well as I thought
moleske Feb 24, 2023
64f4b51
Take out bundle install cause the shell doesn't know ruby exists yet
moleske Feb 24, 2023
e21a364
try source chruby so that the installed ruby gets picked up for bundl…
moleske Feb 24, 2023
f0f2a28
Add neotest-go for those that do go
moleske Feb 24, 2023
fe13cc5
Add Tom Viehman to git authors
tjvman Mar 1, 2023
f7d1ea8
Remove cake from ci url
moleske Mar 4, 2023
2e395bd
Add trigger true to capi-workspace so pipeline kicks automatically
moleske Mar 4, 2023
596894c
Set serial to true so that the job only runs one at a time
moleske Mar 4, 2023
0724ea4
Make concourse linter happy by adding .git
moleske Mar 4, 2023
7c96984
Update readme to reflect new workflow for making workstations (#52)
MerricdeLauney Mar 8, 2023
056bc80
Support fuzzy searching on 'up/down arrow' to previous commands
moleske Mar 17, 2023
16f057c
bump to go 1.20.2
moleske Mar 17, 2023
cedf4cc
make git cloning idempotent
dalvarado Mar 21, 2023
0f40ecb
Install kubectl
tjvman Mar 22, 2023
8706b40
automate plugin installation
moleske Mar 31, 2023
fc9b5db
Revert "automate plugin installation"
moleske Mar 31, 2023
9ee0f22
Automate install of nvim plugins on open
moleske Mar 31, 2023
391caf6
Remove TSUpdate from treesitter
moleske Mar 31, 2023
6fc3651
Make script idempotent
evanfarrar Apr 3, 2023
30e8150
Vim improvements (#53)
MerricdeLauney Apr 10, 2023
933802f
bump to go 1.20.3
moleske Apr 10, 2023
26a4066
Use app image to install latest stable nvim
moleske Apr 10, 2023
f9e1be9
Add Shwetha to git-authors
sethboyles May 17, 2023
e48ff92
add stack auditor to list of repos to clone
sethboyles May 17, 2023
5615854
Add weekly trigger so we get lastest at least once a week
moleske May 19, 2023
d9c42e8
Add dependencies for devex-performance-suite to workstation setup
moleske May 22, 2023
105cd23
bump to go 1.20.4
moleske May 22, 2023
91477dd
Add script for installing smith
dalvarado May 23, 2023
adc0bcb
add Daniel to git-authors
sethboyles May 24, 2023
2692895
Add devex-performance-suite & scheduler to repos
evanfarrar Jun 5, 2023
ca079e5
Use focal workstations instead of jammy
sethboyles Jun 16, 2023
9c25f88
bump to golang 1.20.5
moleske Jun 21, 2023
0f24d4e
add ALE for linting
sethboyles Jul 13, 2023
cf4786c
use spaces instead of tabs
sethboyles Jul 19, 2023
b00ab3a
bump to go 1.20.6
moleske Jul 20, 2023
87435e7
Install lts version of ruby as well for convenience
sethboyles Jul 26, 2023
24af343
bump to go 1.20.7
moleske Aug 10, 2023
f0c970e
Remove tracker integration from claim_bosh_lite
sethboyles Aug 14, 2023
4611ddb
bump to go 1.21.0
moleske Aug 25, 2023
0c7b45a
bump to go 1.21.1
moleske Sep 19, 2023
9df4032
Update git clone script to reflect repos we care about
dalvarado Sep 27, 2023
7613203
bump various cli installation versions
moleske Sep 29, 2023
a3e29fc
fix incorrect credhub link
moleske Sep 29, 2023
41451bf
Add notifications repos to clone script
dalvarado Oct 3, 2023
0fded92
bump to go 1.21.3
moleske Oct 10, 2023
5c04c3e
fix 1.21.3 go install
moleske Oct 18, 2023
8fa9522
bump to go 1.21.4
moleske Nov 17, 2023
d93c3cb
use non deprecated node 20 installation method
moleske Nov 17, 2023
dca25fa
bump to go1.21.5
moleske Dec 14, 2023
a250e10
bump go to 1.21.6
moleske Jan 17, 2024
92449ab
Update git authors file
MarcPaquette Jan 30, 2024
0d8d72f
add basic vimrc and warning that workstations have little vim configu…
sethboyles Jan 30, 2024
230078e
Add docker to workstations (#55)
sethboyles Jan 30, 2024
3ae9d22
Fix missing f in fi
moleske Jan 30, 2024
62146a4
give full path to system_install.sh
moleske Jan 30, 2024
62252a8
add pivotal user to docker group
sethboyles Feb 7, 2024
2aecae4
bump latest go 1.21
moleske Feb 9, 2024
69f2a32
Add github cli to workstations (#57)
moleske Feb 14, 2024
b164711
Customize tmux
a-b Feb 17, 2024
297f3ce
Set nvim as default editor (#59)
a-b Mar 4, 2024
c8052c6
Add Tim Downey to git-authors
tcdowney Apr 15, 2024
bdfd453
Merge pull request #63 from cloudfoundry/tcdowney-patch-1
tcdowney Apr 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
.idea/
launchagent-daily-install.log
Brewfile-core.lock.json
Brewfile-extra.lock.json
Brewfile-osx.lock.json
6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

2 changes: 2 additions & 0 deletions .inputrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"\e[A": history-search-backward
"\e[B": history-search-forward
1 change: 0 additions & 1 deletion .ruby-version

This file was deleted.

38 changes: 0 additions & 38 deletions Brewfile-core

This file was deleted.

48 changes: 0 additions & 48 deletions Brewfile-extra

This file was deleted.

22 changes: 0 additions & 22 deletions Brewfile-osx

This file was deleted.

5 changes: 0 additions & 5 deletions Gemfile

This file was deleted.

17 changes: 0 additions & 17 deletions Gemfile.lock

This file was deleted.

51 changes: 12 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ Hello there! This repo is intended to provide light-weight setup to developing o
![capi](https://im-01.gifer.com/9Y0s.gif)

## Dependencies
* Mac OSX Sierra
* pip

## Installation
Expand All @@ -15,54 +14,28 @@ Hello there! This repo is intended to provide light-weight setup to developing o
git clone [email protected]:cloudfoundry/capi-workspace.git && cd capi-workspace
```

You can now either install via `./install.sh` or `./install-core.sh`.
You can now set up by doing the following:
1. create gcp machine `gcloud compute instances create capi-ws-<your-ws-name> --zone 'us-central1-a' --source-machine-image 'capi-ws-image-latest' --project 'cf-capi-arya'`
1. ssh onto said machine `gcloud compute ssh --zone "us-central1-a" "pivotal@capi-ws-<your-ws-name>" --project "cf-capi-arya" --ssh-flag="-A"`
1. when you're done delete you gcp machine `gcloud compute instances delete capi-ws-<your-ws-name> --zone "us-central1-a" --project "cf-capi-arya" -q`

Or curl the bootstrap script, which will create the `workspace` directory and clone this repo for you.
This is primarily intended for quickly setting up virtual workstations.

```
bash <(curl -s https://raw.githubusercontent.com/cloudfoundry/capi-workspace/main/bootstrap.sh)
```
**Make sure you ssh in as the "pivotal" user**

## Manual steps (to be automated later)
* Open System Preferences / Users & Groups / <user> / Login Items
* Add `flycut` from Applications
* Add `spectacle` from Applications
* Log out/Log in
* This will cause Flycut and Spectacle to run and ask for permissions
* Open up Rubymine manually and select `License Server` and copy in the the rubymine license from the labs license server (http://omaha.pivotallabs.com:8080/licenseServer in the SF office)
- If you are not on a Pivotal Network, you need to VPN into one in order to access this server.
* Install the `mine` cli shortcut (RubyMine -> Tools -> Create Command-line Launcher...)
* If you are using Goland do the same two previous steps for Goland
* If you have access to the private CAPI backlog, add a secure note called `tracker_api_token` to LastPass with your Pivotal Tracker API token. This token will be used in scripts such as `claim_bosh_lite` to pull story titles currently in flight.

## Contributing to this repo

* kindly consider when a change is worth making to `install-core.sh` versus `install.sh`.
* [bash-it](https://github.com/Bash-it/bash-it) We use bash-it to organize and streamline our bash settings. This includes stuff like color schemes, aliases, shell settings, and the shell prompt formatting. Adding "plugins" to `custom-bash-it-plugins` will cause them to be installed in every new shell.

## What this installation does
## Adding nvim plugins
We use vimPlug to manage our plugins. Add the plugin to init.vim. Declare your plugin in the top section between plug#begin and plug#end. Add configuration for your plugin in the lua section between lua <<EOF and EOF.

`install-core.sh`: intended to be more friendly for developers who don't want this repository to take over their machine. This is intended to be the minimal set of things required for working with a CAPI repository.
* Only installs core utilities, languages, services, and binaries.
* Is NOT responsible for installing & configuring any editors (nvim/vscode/intellij)
* Is NOT responsible for installing tools for improving developer workflows (jq/rg)
* Is NOT responsible for applying any git configuration
* Is NOT responsible for loading in scripts that need to be `source`'d.
* Is NOT responsible for modifying your `$PATH` to include `script`

`./install.sh`: runs `install-core.sh` and configures the machine with many more packages/preferences
## Modifying general vim behavior
Add configuration in the Standard Vim Config section of init.vim

## install.sh or install-core.sh ?

`install-core.sh` is a subset of `install.sh` and is intended to be less invasive to the machine, without compromising on provisioning a workstation suitable to working on CAPI projects.
## Contributing to this repo

For fresh workstations && full-time CAPI developers, install.sh might make more sense.
* [bash-it](https://github.com/Bash-it/bash-it) We use bash-it to organize and streamline our bash settings. This includes stuff like color schemes, aliases, shell settings, and the shell prompt formatting. Adding "plugins" to `custom-bash-it-plugins` will cause them to be installed in every new shell.

For folks working on multiple projects, `install-core.sh` might make more sense.
## What this installation does

For folks with existing workstations & configuration, `install-core.sh` might make more sense.
Stuff, important stuff. Stuff that makes a difference.

## Directory Overview

Expand Down
Loading