mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-05 07:55:36 +00:00
6f58497647
Updates #4926 Signed-off-by: Mihai Parparita <mihai@tailscale.com>
78 lines
2.6 KiB
YAML
78 lines
2.6 KiB
YAML
name: Windows race
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: windows-latest
|
|
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
|
|
|
steps:
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: 1.18.x
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Restore Cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
# Note: unlike some other setups, this is only grabbing the mod download
|
|
# cache, rather than the whole mod directory, as the download cache
|
|
# contains zips that can be unpacked in parallel faster than they can be
|
|
# fetched and extracted by tar
|
|
path: |
|
|
~/go/pkg/mod/cache
|
|
~\AppData\Local\go-build
|
|
|
|
# The -2- here should be incremented when the scheme of data to be
|
|
# cached changes (e.g. path above changes).
|
|
# The -race- here ensures that non-race builds and race builds do not
|
|
# overwrite each others cache, as while they share some files, they
|
|
# differ in most by volume (build cache).
|
|
# TODO(raggi): add a go version here.
|
|
key: ${{ runner.os }}-go-2-race-${{ hashFiles('**/go.sum') }}
|
|
|
|
- name: Print toolchain details
|
|
run: gcc -v
|
|
|
|
# There is currently an issue in the race detector in Go on Windows when
|
|
# used with a newer version of GCC.
|
|
# See https://github.com/tailscale/tailscale/issues/4926.
|
|
- name: Downgrade MinGW
|
|
shell: bash
|
|
run: |
|
|
choco install mingw --version 10.2.0 --allow-downgrade
|
|
|
|
- name: Test with -race flag
|
|
# Don't use -bench=. -benchtime=1x.
|
|
# Somewhere in the layers (powershell?)
|
|
# the equals signs cause great confusion.
|
|
run: go test -race -bench . -benchtime 1x ./...
|
|
|
|
- uses: k0kubun/action-slack@v2.0.0
|
|
with:
|
|
payload: |
|
|
{
|
|
"attachments": [{
|
|
"text": "${{ job.status }}: ${{ github.workflow }} <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ env.COMMIT_DATE }} #${{ env.COMMIT_NUMBER_OF_DAY }}> " +
|
|
"(<https://github.com/${{ github.repository }}/commit/${{ github.sha }}|" + "${{ github.sha }}".substring(0, 10) + ">) " +
|
|
"of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}",
|
|
"color": "danger"
|
|
}]
|
|
}
|
|
env:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
if: failure() && github.event_name == 'push'
|
|
|