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

PR & Release management maintenance #940

Merged
merged 3 commits into from
May 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions .github/draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ version-resolver:
- 'github'
default: 'minor'

exclude-labels:
- 'alpine-only'

categories:
- title: '🚀 Enhancements'
labels:
Expand Down Expand Up @@ -58,6 +61,14 @@ change-template: |
template: |
$CHANGES

## Every Release

In every release, we update all [unpinned packages](https://github.com/cloudposse/geodesic/blob/main/packages.txt) to their latest packaged versions.

On a regular basis (roughly weekly), on Alpine only, we update the AWS CLI v1 and its dependencies to the latest versions. Debian does not have AWS CLI v1 installed, only v2.

These changes are not detailed here.

replacers:
# Remove irrelevant information from Renovate bot
- search: '/(?<=---\s+)^#.*(Renovate configuration|Configuration)(?:.|\n)*?This PR has been generated .*/gm'
Expand Down
17 changes: 13 additions & 4 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# We are going to exclude alpine-only PRs from the draft release,
# so we do not apply the label if the Alpine Dockerfile is changed,
# even though the PR is technically Alpine-only.
alpine-only:
- changed-files:
- all-globs-to-all-files:
- os/alpine/**
- !os/alpine/Dockerfile.alpine

direnv:
- changed-files:
- any-glob-to-any-file:
Expand All @@ -6,8 +15,8 @@ direnv:
docker:
- changed-files:
- any-glob-to-any-file:
- Dockerfile.alpine
- Dockerfile.debian
- os/alpine/Dockerfile.alpine
- os/debian/Dockerfile.debian

docs:
- changed-files:
Expand All @@ -22,8 +31,8 @@ github:
packages:
- changed-files:
- any-glob-to-any-file:
- packages*.txt
- requirements*.txt
- "**/packages*.txt"
- "**/requirements*.txt"

scripts:
- changed-files:
Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/vhs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,25 @@ jobs:
- name: "make all"
run: make all

# We need to install the Hack Nerd Font for the demo
# but vhs-action will not install it for us due to issue 264
- name: Install Hack Nerd Font
run: |
curl -sSLO https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip
unzip -d hack_nerd_font Hack.zip
mv hack_nerd_font/ /usr/share/fonts/
fc-cache -fv

- uses: charmbracelet/vhs-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: demo.tape
install-fonts: true
# Cannot use `install-fonts`: https://github.com/charmbracelet/vhs-action/issues/264
# install-fonts: true
install-fonts: false
# Cannot use v0.7.2: https://github.com/charmbracelet/vhs-action/issues/256
version: v0.7.1


- uses: stefanzweifel/git-auto-commit-action@v5
id: auto-commit
Expand Down
21 changes: 8 additions & 13 deletions demo.tape
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,18 @@ Sleep 500ms

Type "geodesic" Enter

Sleep 3s
Sleep 4s

Type "# It ships with common commands like `terraform`" Enter
Sleep 500ms

Type "terraform -help" Enter
Sleep 500ms

Type "# ...and the `aws` CLI =)" Enter
Sleep 500ms

Type "aws help" Enter
Comment on lines -40 to -49
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What can we showcase then that make it more than jq. Not that it was awe-inspiring in the previous version, this is definitely less.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we at least bundle atmos

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK. I took out Terraform in favor of having the option to use Tofu, and aws in preparation for the cloud-agnostic version of Geodesic. Really kubectl is the biggest thing left, and after that, it is mostly the scripts, prompt, integration, etc. that make Geodesic wonderful. It is great that we have a robust set of tools, but they mostly follow the Unix preference of doing one thing well and being composable, so not flashy on their own.

I suppose we could ls /usr/local/bin, which is empty on debian-slim.

2to3@		      docs*			    pip3.12*
2to3-3.12*	      eks-update-kubeconfig*	    pydoc@
annotate-namespace*   eks-update-kubeconfig.draft*  pydoc3@
args*		      emailcli@			    pydoc3.12*
awless@		      geodesic-aptindex-md5*	    python@
aws@		      git-credential-github*	    python-config@
aws-config-setup*     goofys@			    python3@
aws-region*	      grafana-db*		    python3-config@
aws2@		      helm3-metadata-fix*	    python3.12*
aws2_completer@       helmctl*			    python3.12-config*
aws_completer@	      idle@			    s3*
boot*		      idle3@			    session-manager-plugin@
build-kops-manifest*  idle3.12*			    short.txt
build-kubecfg*	      init*			    terminal-server
cfssl@		      install-docker-command*	    tfenv@
codefresh-pipeline*   kopsctl*			    tfmask@
codefresh-settings*   kubectl-auto-select*	    tmate-session*
conf-directory*       make*			    to_short.txt
confirm*	      new-project*		    twiddle*
crudini*	      no-arm64-support*		    wheel*
deps*		      pip*			    wrapper*
destroy-namespace*    pip3*			    yaml-diff*

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The important thing is that I got vhs working again. You can update the demo whenever you feel inspired.

I do not want to install Atmos, because that triggers the Atmos integrations, which will not work in the demo environment (no stacks, no components).

It is kind of ironic that we install about 60 packages and still do not have an easy way to show the power of Geodesic, but in reality, the advantage is we have done all the work to curate, install, and integrate the packages. Plus, as I said before, all the integrations, particularly with Kubernetes (Helm, Helm plugins, Kubeprompt, etc.) and AWS, like assuming roles and connecting to EKS clusters. All hard to show off on a demo running without any code, configuration, or credentials.

Type "# It ships with common commands like `jq`" Enter
Sleep 1500ms

Type "jq" Enter
Sleep 3s

Type "q"
Sleep 1s
Type "# ...and `kubectl`" Enter
Sleep 1500ms

Type "kubectl" Enter@3s

Type "# That's all folks!" Enter
Sleep 2s
Expand Down
Binary file modified docs/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.