This commit is contained in:
Felipe Suero 2022-01-12 15:02:46 -05:00
Родитель 3381f31b13
Коммит 9085ea5d72
3 изменённых файлов: 69 добавлений и 1 удалений

Просмотреть файл

@ -113,6 +113,18 @@ See [all releases](https://github.com/github/pages-gem/releases).
To release a new version of this gem, run `script/release` from the `master` branch. To release a new version of this gem, run `script/release` from the `master` branch.
This will create and tag the release.
It will also create prs in the relevant repos and assign them to you. It is your responsibility to
1. update the version of the gem in those repos
2. deploy those services as needed
The relevant repos are:
1. [github-pages](https://github.com/github/pages)
2. [jekyll-build-pages](https://github.com/actions/jekyll-build-pages/blob/main/Gemfile)
3. [pages.github.com](https://github.com/github/pages.github.com)
## License ## License
Distributed under the [MIT License](LICENSE). Distributed under the [MIT License](LICENSE).

Просмотреть файл

@ -0,0 +1,7 @@
{
"tree": "8e473762f00cab18744b90f7d32557410e549869",
"parents": [
"cd957f6dab7a16078dbcb08576d7b60214192f43"
],
"message": "automated commit for pr creation"
}

Просмотреть файл

@ -39,4 +39,53 @@ git fetch -t origin
# Tag it and bag it. # Tag it and bag it.
gem push github-pages-*.gem && git tag "$tag" && gem push github-pages-*.gem && git tag "$tag" &&
git push origin master && git push origin "$tag" git push origin master && git push origin "$tag"
# create a new release on github
gh release create "$tag" --notes "Automated release for $tag"
#for each dependent repo, create a new branch an a blank pr.
# first get the sha of main for each repo
gh_pages_sha = gh api repos/github/pages/git/refs/heads/master | jq '. | .object.sha'
jekyll_sha = gh api repos/actions/jekyll-build-pages/git/refs/heads/main | jq '. | .object.sha'
gh_pages_site_sha = gh api repos/github/pages.github.com/git/refs/heads/master | jq '. | .object.sha'
# then create the branches
gh api repos/github/pages/git/refs -F "sha"="$gh_pages_sha" -F "ref"="refs/heads/pages-gem-release-$tag"
gh api repos/github/pages/git/refs -F "sha"="$jekyll_sha" -F "ref"="refs/heads/pages-gem-release-$tag"
gh api repos/github/pages/git/refs -F "sha"="$gh_pages_site_sha" -F "ref"="refs/heads/pages-gem-release-$tag"
#then we need the tree object so we can create a commit using the api
gh_pages_tree = gh api repos/github/pages/git/commits/$gh_pages_sha | jq '. | .tree.sha'
jekyll_tree = gh api repos/github/actions/jekyll-build-pages/commits/$jekyll_sha | jq '. | .tree.sha'
gh_pages_site_tree = gh api repos/github/papages.github.comges/git/commits/$gh_pages_site_sha | jq '. | .tree.sha'
# create the input file for the commit. We have to do this because the F flag doesn't support arrays
echo "{\"tree\": \"$gh_pages_tree\", \"parents\": [\"$gh_pages_sha\"], \"message\": \"automated commit for pr creation\"}" > gh_pages_commit_input.json
echo "{\"tree\": \"$jekyll_tree\", \"parents\": [\"$jekyll_sha\"], \"message\": \"automated commit for pr creation\"}" > jekyll_commit_input.json
echo "{\"tree\": \"$gh_pages_site_tree\", \"parents\": [\"$gh_pages_site_sha\"], \"message\": \"automated commit for pr creation\"}" > gh_pages_site_commit_input.json
# create the commit
new_gh_pages_sha = gh api repos/github/pages/git/commits --input gh_pages_commit_input.json | jq '. | .sha'
new_jekyll_sha = gh api repos/actions/jekyll-build-pages/git/commits --input jekyll_commit_input.json | jq '. | .sha'
new_gh_pages_site_sha = gh api repos/github/pages.github.com/git/commits --input gh_pages_site_commit_input.json | jq '. | .sha'
# associate the commit with the branch
gh api repos/github/pages/git/refs/heads/pages-gem-release-$tag -F "sha"="$new_gh_pages_sha" -F "ref"="refs/heads/pages-gem-release-$tag" -F "force"="true"
gh api repos/actions/jekyll-build-pages/git/refs/heads/pages-gem-release-$tag -F "sha"="$new_jekyll_sha" -F "ref"="refs/heads/pages-gem-release-$tag" -F "force"="true"
gh api repos/github/pages.github.com/git/refs/heads/pages-gem-release-$tag -F "sha"="$new_gh_pages_site_sha" -F "ref"="refs/heads/pages-gem-release-$tag" -F "force"="true"
# create pull requests in downstream repos
gh pr create --base "master" --reviewer "@me" --head "pages-gem-release-$tag" --title "Bump pages-gem version to $tag" --assignee "@me" --body "Bump pages-gem version to $tag. You must manually make those changes and commit to this branch" --repo "github/pages"
gh pr create --base "main" --reviewer "@me" --head "pages-gem-release-$tag" --title "Bump pages-gem version to $tag" --assignee "@me" --body "Bump pages-gem version to $tag. You must manually make those changes and commit to this branch" --repo "actions/jekyll-build-pages"
gh pr create --base "master" --reviewer "@me" --head "pages-gem-release-$tag" --title "Bump pages-gem version to $tag" --assignee "@me" --body "Bump pages-gem version to $tag. You must manually make those changes and commit to this branch" --repo "github/pages.github.com"
# clean up the input file for the commit
rm gh_pages_commit_input.json jekyll_commit_input.json gh_pages_site_commit_input.json