121 lines
3.6 KiB
YAML
121 lines
3.6 KiB
YAML
name: "build-and-test"
|
|
on: # rebuild any PRs and main branch changes
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- "releases/*"
|
|
|
|
jobs:
|
|
build: # make sure build/ci work properly
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- if: ${{ !(github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies'))) }}
|
|
uses: actions/checkout@v3
|
|
- if: github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies'))
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
ref: ${{ github.event.pull_request.head.ref }}
|
|
|
|
- run: |
|
|
npm install
|
|
npm run all
|
|
|
|
# Update dist files if there is label dependencies or pull request' author is dependabot[bot] (id = 49699333)
|
|
- name: Update dist files
|
|
if: github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies'))
|
|
run: |
|
|
if [[ -z $(git status -s) ]]
|
|
then
|
|
echo "No change is required"
|
|
else
|
|
echo "Updating dist directory"
|
|
git config --local user.name "dependabot[bot]"
|
|
git config --local user.email "49699333+dependabot[bot]@users.noreply.github.com"
|
|
git add --update
|
|
git commit --message="Update dist files"
|
|
git push
|
|
fi
|
|
|
|
# Fail the build if there is dirty change
|
|
- run: git diff --exit-code
|
|
|
|
test: # make sure the action works on a clean machine without building
|
|
needs: [ build ]
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
version:
|
|
- ""
|
|
- "latest"
|
|
- "v1.53"
|
|
- "v1.53.2"
|
|
runs-on: ${{ matrix.os }}
|
|
permissions:
|
|
contents: read
|
|
pull-requests: read
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
cache: false # setup-go v4 caches by default
|
|
- uses: ./
|
|
with:
|
|
version: ${{ matrix.version }}
|
|
args: --timeout=5m --issues-exit-code=0 ./sample/...
|
|
only-new-issues: true
|
|
|
|
test-go-install: # make sure the action works on a clean machine without building (go-install mode)
|
|
needs: [ build ]
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
version:
|
|
- ""
|
|
- "latest"
|
|
- "v1.53.2"
|
|
- "b5093688c0d3008eaacd6066773a1a52e689252f"
|
|
runs-on: ${{ matrix.os }}
|
|
permissions:
|
|
contents: read
|
|
pull-requests: read
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
cache: false # setup-go v4 caches by default
|
|
- uses: ./
|
|
with:
|
|
version: ${{ matrix.version }}
|
|
args: --timeout=5m --issues-exit-code=0 ./sample/...
|
|
only-new-issues: true
|
|
install-mode: goinstall
|
|
|
|
test-go-mod-version:
|
|
needs: [ build ]
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
runs-on: ${{ matrix.os }}
|
|
permissions:
|
|
contents: read
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
cache: false # setup-go v4 caches by default
|
|
- uses: ./
|
|
with:
|
|
working-directory: sample-go-mod
|
|
args: --timeout=5m --issues-exit-code=0 ./...
|