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

Just publish release branches #60

Merged
merged 1 commit into from
Dec 18, 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
15 changes: 9 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- master
- release/*
- release/2*
pull_request:
workflow_dispatch:
inputs:
Expand All @@ -27,8 +27,11 @@ jobs:
persist-credentials: false
fetch-depth: 0

- name: Setup Just
uses: extractions/setup-just@v2

- name: Build docs
run: make build
run: just build

- name: Deploy preview to Netlify
uses: nwtgck/actions-netlify@v2
Expand All @@ -46,13 +49,13 @@ jobs:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 5

- name: Build versioned docs
# TODO support publishing non-dev versions
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
- name: Publish versioned docs
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/2'))
Copy link
Member

Choose a reason for hiding this comment

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

Could we seize this opportunity to rename the branch into main instead of master? 😇

Copy link
Member Author

Choose a reason for hiding this comment

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

we're using master in other repos (default in the org)

Copy link
Member

Choose a reason for hiding this comment

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

Time to update, then! Dataplane uses main 🙂

Copy link
Member

Choose a reason for hiding this comment

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

Docs are one of the most user-facing repos. For those that are not exposed as well, it's maybe less “important”.

Copy link
Member Author

Choose a reason for hiding this comment

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

It would've been better if it did stick to default so we don't need to switch any :) But I hear you, and we can have that discussion separately. I honestly don't see any reason to bother with it at that stage - in my experience a significant amount (just don't want to say "majority") of OSS projects live completely fine with the master branch.

Copy link
Member

Choose a reason for hiding this comment

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

They do, they're fine with master indeed. I don't see it as a major drawback for the project.

I see changing to main as a commitment, though. I do believe that “master” and “slave” have a strong meaning, and should probably never have been used in tech in the first place. But regardless of what I think, there are some people, maybe a small number, to whom the terminology “master”/“slave” brings painful associations, and to whom it matters. They might contribute to the project nonetheless, but not feel as comfortable doing so as they could. By naming our branch differently we acknowledge that this terminology can hurt, and we do our part to keep these words out of the field. More generally, we also indicate that we care about creating an inclusive community. Or at least, we take one step closer to it.

env:
PUSH_TOKEN: ${{ secrets.GH_DEPLOY_PUSH_TOKEN }}
run: |
make deploy RELEASE=dev ALIAS=master
just deploy
just list
git push https://[email protected]/${{ github.repository }} publish

- name: Setup tmate session for debug
Expand Down
41 changes: 41 additions & 0 deletions Justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
set shell := ["bash", "-euo", "pipefail", "-c"]

[private]
@default: build

export DOCKER_CLI_HINTS := "false"

image_name := "ghcr.io/githedgehog/hhdocs"
image_version := "20241202"
image := image_name + ":" + image_version

# Run mkdocs or mike CLI in a container
_run +cmd:
docker run -q --pull=always --rm -v $(pwd):/docs -p 8000:8000 {{image}} {{cmd}}

# Build docs site (unversioned)
build: (_run "mkdocs build")

# Clean generated docs site
clean:
rm -rf site

# Serve docs site (unversioned, watches for changes)
serve: (_run "mkdocs serve -a 0.0.0.0:8000")

# List published versions
list: (_run "mike list -b publish")

branch_current := `git branch --show-current --format "%(refname:short)"`
branch_latest := `git branch --list 'release/2*' --format "%(refname:short)" --sort=-version:refname | head -n 1`
release := trim_start_match(branch_current, "release/")

_release := if branch_current == "master" { "dev" } else { release }
_alias := if branch_current == branch_latest { "latest" } else if branch_current == "master" { "master" } else { "" }

# Shoud version that will be deployed (to publish branch)
@version:
echo "Release '{{_release}}' alias '{{_alias}}'"

# Deploy docs site (versioned) to publish branch
deploy release=_release alias=_alias: (_run "mike deploy -b publish -u" release alias)
55 changes: 0 additions & 55 deletions Makefile

This file was deleted.

4 changes: 2 additions & 2 deletions docs/contribute/docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ This documentation is done using [MkDocs](https://www.mkdocs.org) with multiple
In order to contribute to the documentation, you'll need to have Git and Docker installed on your machine as well as any editor of your choice, preferably supporting Markdown preview. You can run the preview server using following command:

``` bash
make serve
just serve
```

Now you can open continuously updated preview of your edits in browser at [http://127.0.0.1:8000](http://127.0.0.1:8000). Pages will be automatically updated while you're editing.

Additionally you can run

```bash
make build
just build
```

to make sure that your changes will be built correctly and doesn't break documentation.
Expand Down
Loading