Skip to content

Commit dbda6c8

Browse files
authored
Merge Release 1.8 into Main (#1636)
* Release 1.8-rc1 (#1587) * Release 1.8 (#1596)
1 parent 98e7a02 commit dbda6c8

147 files changed

Lines changed: 2411 additions & 1899 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/release.md

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ then you'll need to create the release branch.
3737

3838
```shell
3939
# Create a local release branch.
40-
git checkout -b release-0.5 upstream/master
40+
git checkout -b release-0.5 upstream/main
4141
# Push the branch upstream.
4242
git push upstream release-0.5
4343
```
@@ -76,7 +76,7 @@ Hot Fixes:
7676

7777
Preview:
7878

79-
* Rare, a one off release cut from the master branch to provide early access
79+
* Rare, a one off release cut from the main branch to provide early access
8080
to APIs or some other major change.
8181
* **NOTE: There's no branch for this release.**
8282
* Example: 0.5-preview.1
@@ -98,25 +98,24 @@ only required once.**
9898

9999
- [ ] Create the branch in the **upstream** repository. It should be named
100100
release-X.Y. Example: release-0.5. At this point there's effectively a code
101-
freeze for this version and all work on master will be included in a future
101+
freeze for this version and all work on main will be included in a future
102102
version. If you're on the branch that you created in the *getting setup*
103103
section above you should be able to push upstream.
104104

105105
```shell
106106
git push origin release-0.5
107107
```
108108

109-
- [ ] Announce a PR freeze on release-X.Y branch on [open-match-discuss@](mailing-list-post).
109+
- [ ] Announce a PR freeze on release-X.Y branch on [open-match-discuss@](https://groups.google.com/forum/#!forum/open-match-discuss).
110110
- [ ] Open the [`Makefile`](makefile-version) and change BASE_VERSION entry.
111111
- [ ] Open the [`install/helm/open-match/Chart.yaml`](om-chart-yaml-version) and change the `appVersion` and `version` entries.
112112
- [ ] Open the [`install/helm/open-match/values.yaml`](om-values-yaml-version) and change the `tag` entries.
113113
- [ ] Open the [`cloudbuild.yaml`] and change the `_OM_VERSION` entry.
114114
- [ ] There might be additional references to the old version but be careful not to change it for places that have it for historical purposes.
115-
- [ ] Run `make release`
116-
- [ ] Run `make api/api.md` in open-match repo to update the auto-generated API references in open-match-docs repo.
115+
- [ ] Update usage requirements in the Installation doc - e.g. supported minikube version, kubectl version, golang version, etc.
117116
- [ ] Create a PR with the changes, include the release candidate name, and point it to the release branch.
118117
- [ ] Go to [open-match-build](https://pantheon.corp.google.com/cloud-build/triggers?project=open-match-build) and update all *post submit* triggers' `_GCB_LATEST_VERSION` value to the `X.Y` of the release. This value should only increase as it's used to determine the latest stable version.
119-
- [ ] Merge your changes once the PR is approved.
118+
- [ ] Merge your changes once the PR is approved. Note: the helm chart is not published to the public registry until the merge is complete (it's a second cloud build trigger upon merge), so you won't be able to do final release testing until after all checks/approvals are finished!
120119

121120
## Create a release branch in the upstream open-match-docs repository
122121
- [ ] Open [`Makefile`](makefile-version) and change BASE_VERSION entry.
@@ -131,53 +130,46 @@ git push origin release-0.5
131130
only required once.**
132131
- [ ] Create the next [version milestone](https://github.com/googleforgames/open-match/milestones) and use [semantic versioning](https://semver.org/) when naming it to be consistent with the [Go community](https://blog.golang.org/versioning-proposal).
133132
- [ ] Create a *draft* [release](https://github.com/googleforgames/open-match/releases). Note that github has both "Pre-release" and "draft" as different concepts for a release. Until the release is finalized, only use "Save draft", and do not use "Publish release".
134-
- [ ] Use the [release template](https://github.com/googleforgames/open-match/blob/master/docs/governance/templates/release.md)
135-
- [ ] `Tag` = v{version}. Example: v0.5.0. Append -rc.# for release candidates. Example: v0.5.0-rc.1.
136-
- [ ] `Target` = release-X.Y. Example: release-0.5.
137-
- [ ] `Release Title` = `Tag`
138-
- [ ] `Write` section will contain the contents from the [release template](https://github.com/googleforgames/open-match/blob/master/docs/governance/templates/release.md).
139-
- [ ] Add the milestone to all PRs and issues that were merged since the last milestone. Look at the [releases page](https://github.com/googleforgames/open-match/releases) and look for the "X commits to master since this release" for the diff.
140-
- [ ] Review all [milestone-less closed issues](https://github.com/googleforgames/open-match/issues?q=is%3Aissue+is%3Aclosed+no%3Amilestone) and assign the appropriate milestone.
141-
- [ ] Review all [issues in milestone](https://github.com/googleforgames/open-match/milestones) for proper [labels](https://github.com/googleforgames/open-match/labels) (ex: area/build).
133+
- [ ] Use the [release template](https://github.com/googleforgames/open-match/blob/main/docs/governance/templates/release.md)
134+
- [ ] `Tag = v{version}` (Example: v0.5.0. Append -rc.# for release candidates. Example: v0.5.0-rc.1.)
135+
- [ ] `Target = release-X.Y` (Example: release-0.5.)
136+
- [ ] `Release Title = v{version}` (Must match `Tag`)
137+
- [ ] `Write` section will contain the contents from the [release template](https://github.com/googleforgames/open-match/blob/main/docs/governance/templates/release.md).
138+
- [ ] Add the milestone to all PRs and issues that were merged since the last milestone. Look at the [releases page](https://github.com/googleforgames/open-match/releases) and look for the "X commits to main since this release" for the diff.
142139
- [ ] Review all [milestone-less closed PRs](https://github.com/googleforgames/open-match/pulls?q=is%3Apr+is%3Aclosed+no%3Amilestone) and assign the appropriate milestone.
143140
- [ ] Review all [PRs in milestone](https://github.com/googleforgames/open-match/milestones) for proper [labels](https://github.com/googleforgames/open-match/labels) (ex: area/build).
144141
- [ ] View all open entries in milestone and move them to a future milestone if they aren't getting closed in time. https://github.com/googleforgames/open-match/milestones/v{version}
145142
- [ ] Review all closed PRs against the milestone. Put the user visible changes into the release notes using the suggested format. https://github.com/googleforgames/open-match/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+is%3Amerged+milestone%3Av{version}
146143
- [ ] Review all closed issues against the milestone. Put the user visible changes into the release notes using the suggested format. https://github.com/googleforgames/open-match/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed+milestone%3Av{version}
147-
- [ ] Verify the [milestone](https://github.com/googleforgames/open-match/milestones) is effectively 100% at this point with the exception of the release issue itself.
144+
- [ ] Verify everything in the [milestone](https://github.com/googleforgames/open-match/milestones) is complete with the exception of the release issue itself.
148145

149-
## Build Artifacts
146+
## Build And Test Artifacts
150147

151-
- [ ] Go to the History section and find the "Post Submit" build of the merged commit that's running. Wait for it to go Green. If it's red, fix error repeat this section. Take note of the docker image version tag for next step. Example: 0.5.0-a4706cb.
148+
- [ ] Navigate to the [Cloud Console](https://console.cloud.google.com) in a browser and open the [Cloud Build History section](https://console.cloud.google.com/cloud-build/builds?project=open-match-build) and find the latest "Post Submit" build (trigger id: 9a451c7a-197b-4a38-a612-21f4c53c42fd) of the merged commit. The build may still be running, if so wait for it to finish. If it failed, fix the error and repeat this section. Open the build details and click on step 12, "Build: Docker Images". Take note of the docker image version tag near the top of the build log. This is the "{source version tag}" referenced in various commands below. Example: `0.5.0-a4706cb`.
152149
- [ ] Run `./docs/governance/templates/release.sh {source version tag} {version}` to copy the images to open-match-public-images.
153-
- [ ] If this is a new minor version in the newest major version then run `./docs/governance/templates/release.sh {source version tag} latest`.
154-
- [ ] Once the images have successfully been pushed to the registry, modify the line `open-match.dev/open-match v0.0.0-dev` in all `go.mod` files in the [Tutorials] (https://github.com/googleforgames/open-match/tree/main/tutorials) directory to use the current release version. This includes all solution subdirectories as well
155-
- [ ] Use the files under the `build/release/` directory for the Open Match installation guide. Make sure the artifacts work as expected - these are the artifacts that will be published to the GCS bucket and used in our release assets.
156-
- [ ] Copy the files from `build/release/` generated from `make release` to the release draft you created. You can drag and drop the files using the Github UI.
157-
- [ ] Update [Slack invitation link](https://slack.com/help/articles/201330256-invite-new-members-to-your-workspace#share-an-invite-link) in [open-match.dev](https://open-match.dev/site/docs/contribute/#get-involved).
158-
- [ ] Test Open Match installation under GKE and Minikube enviroment using YAML files and Helm. Follow the [First Match](https://development.open-match.dev/site/docs/getting-started/first_match/) guide, run `make proxy-demo`, and open `localhost:51507` to make sure everything works.
150+
- [ ] If this is not a release candidate or preview but a full release, run `./docs/governance/templates/release.sh {source version tag} latest` to tag these public images as the default version to pull from the registry.
151+
- [ ] Once the images have successfully been pushed to the registry, modify the line `open-match.dev/open-match v0.0.0-dev` in all `go.mod` files in the [Tutorials] (https://github.com/googleforgames/open-match/tree/main/tutorials) directory to use the current release version for the remainder of your local release testing. This includes all solution subdirectories as well. This change is local only and doesn't get committed to git.
152+
- [ ] Copy the installation files named `{sequence_number}-{component}.yaml` (example: `01-open-match-core.yaml`) from the [build folder in the private open-match-build-artifacts GCS bucket https://storage.mtls.cloud.google.com/open-match-build-artifacts/{version}](https://console.cloud.google.com/storage/browser/open-match-build-artifacts?project=open-match-build) to the release draft you created. Download them to your local machine, and then attach them to the draft using the Github UI. Note: the `05-jaeger.yaml` file no longer exists after release 1.8, so don't be surprised if that number is missing.
153+
- [ ] Update the [Slack invitation link](https://slack.com/help/articles/201330256-invite-new-members-to-your-workspace#share-an-invite-link) in [open-match.dev](https://open-match.dev/site/docs/contribute/#get-involved).
154+
- [ ] Test Open Match installation under GKE and Minikube enviroment using the YAML files attached to the release and the latest Helm chart, pulled from the public helm repo (not your local copy from github). Follow the [First Match](https://development.open-match.dev/site/docs/getting-started/first_match/) guide, run `make proxy-demo`, and open `localhost:51507` to make sure everything works.
159155
- [ ] Minikube: Run `make create-mini-cluster` to create a local cluster with latest Kubernetes API version.
160156
- [ ] GKE: Run `make create-gke-cluster` to create a GKE cluster.
161-
- [ ] Helm: Run `helm install open-match -n open-match open-match/open-match`
162-
- [ ] Update usage requirements in the Installation doc - e.g. supported minikube version, kubectl version, golang version, etc.
157+
- [ ] Helm: Run `helm install open-match -n open-match open-match/open-match`. Note, the helm chart for the release is not public until the PR has been merged, so you cannot complete this step until after the PR is closed and the 'Tagged Build' trigger (trigger ID: 083adc1a-fcac-4033-bc38-b9f6eadcb75d) has completed, which publishes the helm chart.
163158

164159
## Finalize
165160

166-
- [ ] Save the release as a draft.
161+
- [ ] Make sure your release draft reflects all steps up to this point, and is saved (so contributors can review it).
167162
- [ ] Circulate the draft release to active contributors. Where reasonable, get everyone's ok on the release notes before continuing.
168163
- [ ] Publish the [Release](om-release) in Github. This will notify repository watchers.
169164
- [ ] Publish the [Release](om-release) on Open Match [Blog](https://open-match.dev/site/blog/).
170165

171166
## Announce
172167

173-
- [ ] Send an email to the [mailing list](mailing-list-post) with the release details (copy-paste the release blog post)
174-
- [ ] Send a chat on the [Slack channel](om-slack). "Open Match {version} has been released! Check it out at {release url}."
168+
- [ ] Send an email to the [mailing list](https://groups.google.com/forum/#!newtopic/open-match-discuss) with the release details (copy-paste the release blog post)
169+
- [ ] Send a chat on the [Slack channel](https://open-match.slack.com/). "Open Match {version} has been released! Check it out at {release url}."
175170

176-
[om-slack]: https://open-match.slack.com/
177-
[mailing-list-post]: https://groups.google.com/forum/#!newtopic/open-match-discuss
178-
[release-template]: https://github.com/googleforgames/open-match/blob/master/docs/governance/templates/release.md
179-
[makefile-version]: https://github.com/googleforgames/open-match/blob/master/Makefile#L53
180-
[om-chart-yaml-version]: https://github.com/googleforgames/open-match/blob/master/install/helm/open-match/Chart.yaml#L16
181-
[om-values-yaml-version]: https://github.com/googleforgames/open-match/blob/master/install/helm/open-match/values.yaml#L16
171+
[makefile-version]: https://github.com/googleforgames/open-match/blob/main/Makefile#L53
172+
[om-chart-yaml-version]: https://github.com/googleforgames/open-match/blob/main/install/helm/open-match/Chart.yaml#L16
173+
[om-values-yaml-version]: https://github.com/googleforgames/open-match/blob/main/install/helm/open-match/values.yaml#L16
182174
[om-release]: https://github.com/googleforgames/open-match/releases/new
183-
[readme-deploy]: https://github.com/googleforgames/open-match/blob/master/README.md#deploy-to-kubernetes
175+
[readme-deploy]: https://github.com/googleforgames/open-match/blob/main/README.md#deploy-to-kubernetes

Dockerfile.base-build

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
# limitations under the License.
1414

1515
# When updating Go version, update Dockerfile.ci, Dockerfile.base-build, and go.mod
16-
FROM golang:1.19.5
17-
ENV GO111MODULE=on
16+
FROM golang:1.21.0
1817

1918
WORKDIR /go/src/open-match.dev/open-match
2019

Dockerfile.ci

Lines changed: 48 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,49 +11,65 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14+
FROM debian:bookworm
1415

15-
FROM debian
16+
# set env vars
17+
ARG DEBIAN_FRONTEND=noninteractive
18+
ENV OPEN_MATCH_CI_MODE=1
19+
ENV KUBECONFIG=$HOME/.kube/config
20+
ENV GOPATH=/go
21+
ENV PATH=$GOPATH/bin:/usr/local/go/bin:$PATH
1622

17-
RUN apt-get update
18-
RUN apt-get install -y -qq git make python3 virtualenv curl sudo unzip apt-transport-https ca-certificates curl software-properties-common gnupg2
23+
RUN apt-get update -y \
24+
&& apt-get install -y -qq --no-install-recommends \
25+
apt-utils \
26+
git \
27+
make \
28+
python3 \
29+
virtualenv \
30+
curl \
31+
sudo \
32+
unzip \
33+
apt-transport-https \
34+
ca-certificates \
35+
curl \
36+
software-properties-common \
37+
gnupg2 \
38+
libc6 \
39+
build-essential
40+
RUN mkdir -p /usr/share/keyrings/
1941

2042
# Docker
21-
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
22-
RUN sudo apt-key fingerprint 0EBFCD88
23-
RUN sudo add-apt-repository \
24-
"deb [arch=amd64] https://download.docker.com/linux/debian \
25-
stretch \
26-
stable"
27-
RUN sudo apt-get update
28-
RUN sudo apt-get install -y -qq docker-ce docker-ce-cli containerd.io
43+
RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee -a /etc/apt/sources.list.d/docker.list \
44+
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg \
45+
&& apt-get update -y \
46+
&& apt-get install -y -qq \
47+
docker-ce \
48+
docker-ce-cli \
49+
containerd.io
2950

3051
# Cloud SDK
31-
RUN export CLOUD_SDK_REPO="cloud-sdk-stretch" && \
32-
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
33-
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
34-
apt-get update -y && apt-get install google-cloud-sdk google-cloud-sdk-app-engine-go -y -qq && \
35-
sudo apt-get update -y && \
36-
sudo apt-get install -y google-cloud-sdk-gke-gcloud-auth-plugin
52+
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list \
53+
&& curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - \
54+
&& apt-get update -y \
55+
&& apt-get install -y -qq \
56+
google-cloud-cli \
57+
google-cloud-sdk-gke-gcloud-auth-plugin
3758

3859
# Install Golang
39-
# https://github.com/docker-library/golang/blob/master/1.14/stretch/Dockerfile
4060
RUN mkdir -p /toolchain/golang
4161
WORKDIR /toolchain/golang
42-
RUN sudo rm -rf /usr/local/go/
62+
RUN rm -rf /usr/local/go/
4363

4464
# When updating Go version, update Dockerfile.ci, Dockerfile.base-build, and go.mod
45-
RUN curl -L https://golang.org/dl/go1.19.5.linux-amd64.tar.gz | sudo tar -C /usr/local -xz
46-
47-
ENV GOPATH /go
48-
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
49-
50-
RUN sudo mkdir -p "$GOPATH/src" "$GOPATH/bin" \
51-
&& sudo chmod -R 777 "$GOPATH"
52-
53-
# Prepare toolchain and workspace
54-
RUN mkdir -p /toolchain
65+
# reference: https://github.com/docker-library/golang/blob/master/1.20/bookworm/Dockerfile
66+
RUN curl -L https://golang.org/dl/go1.21.0.linux-amd64.tar.gz | tar -C /usr/local -xz
67+
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" \
68+
&& chmod -R 777 "$GOPATH"
5569

70+
# Prepare toolchain, workspace, homedir
71+
RUN mkdir -p \
72+
/toolchain \
73+
/workspace \
74+
$HOME/.kube/
5675
WORKDIR /workspace
57-
ENV OPEN_MATCH_CI_MODE=1
58-
ENV KUBECONFIG=$HOME/.kube/config
59-
RUN mkdir -p $HOME/.kube/

0 commit comments

Comments
 (0)