Skip to content

Commit

Permalink
Implement Go branch updater with GitHub actions.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 312155686
  • Loading branch information
amscanne authored and gvisor-bot committed May 18, 2020
1 parent 20e6efd commit cbfb558
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: "Go"
on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
generate:
runs-on: ubuntu-latest
steps:
- run: |
jq -nc '{"state": "pending", "context": "go tests"}' | \
curl -sL -X POST -d @- \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"${{ github.event.pull_request.statuses_url }}"
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-go@v2
with:
go-version: 1.14
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- uses: actions/cache@v1
with:
path: ~/.cache/bazel
key: ${{ runner.os }}-bazel-${{ hashFiles('WORKSPACE') }}
restore-keys: |
${{ runner.os }}-bazel-
- run: make build TARGETS="//:gopath"
- run: tools/go_branch.sh
- run: git checkout go && git clean -f
- run: go build ./...
- if: github.event_name == 'push'
run: |
# Required dedicated credentials for the Go branch, due to the way
# branch protection rules are configured.
git config --global credential.helper cache
echo -e "protocol=https\nhost=github.com\nusername=${{ secrets.GO_TOKEN }}\npassword=x-oauth-basic" | git credential approve
git remote add upstream "https://github.com/${{ github.repository }}"
git push upstream go:go
- if: ${{ success() }}
run: |
jq -nc '{"state": "success", "context": "go tests"}' | \
curl -sL -X POST -d @- \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"${{ github.event.pull_request.statuses_url }}"
- if: ${{ failure() }}
run: |
jq -nc '{"state": "failure", "context": "go tests"}' | \
curl -sL -X POST -d @- \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"${{ github.event.pull_request.statuses_url }}"
5 changes: 3 additions & 2 deletions tools/go_branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

set -eo pipefail
set -xeo pipefail

# Discovery the package name from the go.mod file.
declare -r module=$(cat go.mod | grep -E "^module" | cut -d' ' -f2)
Expand Down Expand Up @@ -42,7 +42,8 @@ declare -r head=$(git describe --always)

# We expect to have an existing go branch that we will use as the basis for
# this commit. That branch may be empty, but it must exist.
declare -r go_branch=$(git show-ref --hash origin/go)
git fetch --all
declare -r go_branch=$(git show-ref --hash go)

# Clone the current repository to the temporary directory, and check out the
# current go_branch directory. We move to the new repository for convenience.
Expand Down

0 comments on commit cbfb558

Please sign in to comment.