summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.buildkite/pipeline.yaml2
-rw-r--r--.github/workflows/build.yml9
-rw-r--r--.github/workflows/go.yml47
-rwxr-xr-xtools/go_branch.sh12
4 files changed, 39 insertions, 31 deletions
diff --git a/.buildkite/pipeline.yaml b/.buildkite/pipeline.yaml
index f8bf00b50..93e4195d6 100644
--- a/.buildkite/pipeline.yaml
+++ b/.buildkite/pipeline.yaml
@@ -34,7 +34,7 @@ steps:
label: ":golang: Go branch"
commands:
- tools/go_branch.sh
- - git checkout go && git clean -f
+ - git checkout go && git clean -xf .
- go build ./...
# Release workflow.
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 270aaf034..b0381a563 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,19 +9,14 @@ name: "Build"
- master
pull_request:
branches:
- - "**"
+ - master
+ - "feature/**"
jobs:
default:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- - uses: actions/cache@v1
- with:
- path: ~/.cache/bazel
- key: ${{ runner.os }}-bazel-${{ hashFiles('WORKSPACE') }}
- restore-keys: |
- ${{ runner.os }}-bazel-
- run: make
- run: make build OPTIONS="--build_tag_filters nogo" TARGETS="//..."
- run: make run TARGETS="//tools/github" ARGS="-path=bazel-bin/ -path=bazel-out/ nogo"
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 802fe5ce5..594dc7ffc 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -7,6 +7,10 @@ name: "Go"
push:
branches:
- master
+ pull_request:
+ branches:
+ - master
+ - "feature/**"
jobs:
generate:
@@ -19,31 +23,42 @@ jobs:
else
echo ::set-output name=has_token::false
fi
+ - 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 }}"
+ if: github.event_name == 'pull_request'
- uses: actions/checkout@v2
- if: steps.setup.outputs.has_token == 'true'
+ if: github.event_name == 'push' && steps.setup.outputs.has_token == 'true'
with:
fetch-depth: 0
token: '${{ secrets.GO_TOKEN }}'
- uses: actions/checkout@v2
- if: steps.setup.outputs.has_token != 'true'
+ if: github.event_name == 'pull_request' || steps.setup.outputs.has_token != 'true'
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-
+ go-version: 1.15
- run: tools/go_branch.sh
- - run: |
+ - run: git checkout go && git clean -xf . && go build ./...
+ - if: github.event_name == 'push'
+ run: |
git remote add upstream "https://github.com/${{ github.repository }}"
git push upstream go:go
+ - if: ${{ success() && github.event_name == 'pull_request' }}
+ 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() && github.event_name == 'pull_request' }}
+ 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 }}"
diff --git a/tools/go_branch.sh b/tools/go_branch.sh
index 4b18c015f..026733d3c 100755
--- a/tools/go_branch.sh
+++ b/tools/go_branch.sh
@@ -37,11 +37,9 @@ readonly module origpwd othersrc
# Build an amd64 & arm64 gopath.
declare -r go_amd64="${tmp_dir}/amd64"
declare -r go_arm64="${tmp_dir}/arm64"
-rm -rf bazel-bin/gopath
-make build BAZEL_OPTIONS="" TARGETS="//:gopath"
+make build BAZEL_OPTIONS="" TARGETS="//:gopath" 2>/dev/null
rsync --recursive --delete --copy-links bazel-bin/gopath/ "${go_amd64}"
-rm -rf bazel-bin/gopath
-make build BAZEL_OPTIONS=--config=cross-aarch64 TARGETS="//:gopath"
+make build BAZEL_OPTIONS=--config=cross-aarch64 TARGETS="//:gopath" 2>/dev/null
rsync --recursive --delete --copy-links bazel-bin/gopath/ "${go_arm64}"
# Strip irrelevant files, i.e. use only arm64 files from the arm64 build.
@@ -69,8 +67,8 @@ cross_check "${go_amd64}" "${go_arm64}"
# Merge the two for a complete set of source files.
declare -r go_merged="${tmp_dir}/merged"
-rsync --recursive --update "${go_amd64}/" "${go_merged}"
-rsync --recursive --update "${go_arm64}/" "${go_merged}"
+rsync --recursive "${go_amd64}/" "${go_merged}"
+rsync --recursive "${go_arm64}/" "${go_merged}"
# Record the current working commit.
declare head
@@ -161,7 +159,7 @@ find . -type d -exec chmod 0755 {} \;
# branch, then we have nothing to commit here. So allow empty commit. This can
# occur when this script is run parallely (via pull_request and push events)
# and the push workflow finishes before the pull_request workflow can run this.
-git add . && git commit --allow-empty -m "Merge ${head} (automated)"
+git add --all && git commit --allow-empty -m "Merge ${head} (automated)"
# Push the branch back to the original repository.
git remote add orig "${repo_orig}" && git push -f orig go:go