69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
# This workflow generates the Go branch. Note that this does not test the Go
|
|
# branch, as this is rolled into the main continuous integration pipeline. This
|
|
# workflow simply generates and pushes the branch, as long as appropriate
|
|
# permissions are available.
|
|
name: "Go"
|
|
"on":
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- "feature/**"
|
|
|
|
jobs:
|
|
generate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Cancel previous
|
|
uses: styfle/cancel-workflow-action@0.7.0
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
- id: setup
|
|
run: |
|
|
if ! [[ -z "${{ secrets.GO_TOKEN }}" ]]; then
|
|
echo ::set-output name=has_token::true
|
|
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: github.event_name == 'push' && steps.setup.outputs.has_token == 'true'
|
|
with:
|
|
fetch-depth: 0
|
|
token: '${{ secrets.GO_TOKEN }}'
|
|
- uses: actions/checkout@v2
|
|
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.15
|
|
- run: tools/go_branch.sh
|
|
- 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 }}"
|