name: Development on: [push, pull_request] jobs: lint: name: golangci-lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 20 - name: Run golangci-lint uses: golangci/golangci-lint-action@v2 with: version: latest args: "-v --new-from-rev HEAD~5" test-build-upload: strategy: matrix: go-version: [1.16.x, 1.17.x] platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} stable: false - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 0 - name: Test run: go test ./... -mod=vendor - name: Build run: | mkdir -p output/{win,lin,arm,mac} VERSION=$(git describe --tags) GOOS=linux GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/lin/matterbridge-$VERSION-linux-amd64 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/win/matterbridge-$VERSION-windows-amd64.exe GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X main.githash=$(git log --pretty=format:'%h' -n 1)" -o output/mac/matterbridge-$VERSION-darwin-amd64 - name: Upload linux 64-bit if: startsWith(matrix.go-version,'1.17') uses: actions/upload-artifact@v2 with: name: matterbridge-linux-64bit path: output/lin - name: Upload windows 64-bit if: startsWith(matrix.go-version,'1.17') uses: actions/upload-artifact@v2 with: name: matterbridge-windows-64bit path: output/win - name: Upload darwin 64-bit if: startsWith(matrix.go-version,'1.17') uses: actions/upload-artifact@v2 with: name: matterbridge-darwin-64bit path: output/mac