mirror of
https://github.com/moul/sshportal.git
synced 2025-09-19 11:06:33 +08:00
Since Go 1.21 has been released, the Go 1.18 version has been deprecated according to Go's release plan documents. Update the builder to 1.21 and run tests on everything from Go 1.17 through 1.21.
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
jobs:
|
|
docker-build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build the Docker image
|
|
run: docker build . --file Dockerfile
|
|
golangci-lint:
|
|
name: golangci-lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: lint
|
|
uses: golangci/golangci-lint-action@v3
|
|
with:
|
|
version: v1.50.1
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
tests-on-windows:
|
|
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
golang:
|
|
- 1.21.x
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ matrix.golang }}
|
|
- name: Run tests on Windows
|
|
run: make.exe unittest
|
|
continue-on-error: true
|
|
tests-on-mac:
|
|
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
|
|
runs-on: macos-latest
|
|
strategy:
|
|
matrix:
|
|
golang:
|
|
- 1.21.x
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ matrix.golang }}
|
|
- uses: actions/cache@v2.1.7
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-${{ matrix.golang }}-
|
|
- name: Run tests on Unix-like operating systems
|
|
run: make unittest
|
|
tests-on-linux:
|
|
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
golang:
|
|
- 1.17.x
|
|
- 1.18.x
|
|
- 1.19.x
|
|
- 1.20.x
|
|
- 1.21.x
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ matrix.golang }}
|
|
- uses: actions/cache@v2.1.7
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-${{ matrix.golang }}-
|
|
- name: Run tests on Unix-like operating systems
|
|
run: make unittest
|