Merge pull request #468 from jzelinskie/workflows

Replace TravisCI with GitHub Workflows
This commit is contained in:
Jimmy Zelinskie 2020-02-20 13:09:42 -05:00 committed by GitHub
commit 2a3bb5bea0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 133 additions and 167 deletions

132
.github/workflows/go.yaml vendored Normal file
View file

@ -0,0 +1,132 @@
name: CI
on: [push]
jobs:
build:
name: Build & Lint
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Set GOPATH
run: |
# temporary fix for https://github.com/actions/setup-go/issues/14
echo "##[set-env name=GOPATH;]$(dirname $GITHUB_WORKSPACE)"
echo "##[add-path]$(dirname $GITHUB_WORKSPACE)/bin"
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Build
run: go build -v ./cmd/...
- name: Vet
run: go vet ./...
- name: Format
run: |
go install golang.org/x/tools/cmd/goimports
diff <(goimports -local github.com/chihaya/chihaya -d $(find . -type f -name '*.go' -not -path "./vendor/*")) <(printf "")
- name: Lint
run: |
go install golang.org/x/lint/golint
(for d in $(go list ./...); do diff <(golint $d) <(printf "") || exit 1; done)
unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Set GOPATH
run: |
# temporary fix for https://github.com/actions/setup-go/issues/14
echo "##[set-env name=GOPATH;]$(dirname $GITHUB_WORKSPACE)"
echo "##[add-path]$(dirname $GITHUB_WORKSPACE)/bin"
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Unit Tests
run: go test -v -race $(go list ./...)
e2e-mem:
name: E2E Tests (Memory Storage)
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Set GOPATH
run: |
# temporary fix for https://github.com/actions/setup-go/issues/14
echo "##[set-env name=GOPATH;]$(dirname $GITHUB_WORKSPACE)"
echo "##[add-path]$(dirname $GITHUB_WORKSPACE)/bin"
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Test
run: |
go install github.com/chihaya/chihaya/cmd/chihaya
cat ./dist/example_config.yaml
chihaya --config=./dist/example_config.yaml --debug &
pid=$!
sleep 2
chihaya e2e --debug
kill $pid
e2e-redis:
name: E2E Tests (Redis Storage)
runs-on: ubuntu-latest
services:
redis:
image: redis
ports: ["6379:6379"]
options: --entrypoint redis-server
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Set GOPATH
run: |
# temporary fix for https://github.com/actions/setup-go/issues/14
echo "##[set-env name=GOPATH;]$(dirname $GITHUB_WORKSPACE)"
echo "##[add-path]$(dirname $GITHUB_WORKSPACE)/bin"
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Configure redis storage
run: |
curl -LO https://github.com/jzelinskie/faq/releases/download/0.0.6/faq-linux-amd64
chmod +x faq-linux-amd64
./faq-linux-amd64 '.chihaya.storage = {"config":{"gc_interval":"3m","peer_lifetime":"31m","prometheus_reporting_interval":"1s","redis_broker":"redis://127.0.0.1:6379/0","redis_connect_timeout":"15s","redis_read_timeout":"15s","redis_write_timeout":"15s"},"name":"redis"}' ./dist/example_config.yaml > ./dist/example_redis_config.yaml
cat ./dist/example_redis_config.yaml
- name: Test
run: |
go install github.com/chihaya/chihaya/cmd/chihaya
chihaya --config=./dist/example_redis_config.yaml --debug &
pid=$!
sleep 2
chihaya e2e --debug
kill $pid

View file

@ -1,35 +0,0 @@
language: go
go:
- 1.13.x
sudo: false
services:
- redis-server
matrix:
include:
# Using vendored dependencies
- install:
- ./dist/travis/install_reproducible.sh
script:
- ./dist/travis/check.sh
# Using HEAD of dependencies
- install:
- ./dist/travis/install_tip.sh
script:
- ./dist/travis/check.sh
allow_failures:
# Using HEAD of dependencies
- install:
- ./dist/travis/install_tip.sh
script:
- ./dist/travis/check.sh
notifications:
irc:
channels:
- irc.freenode.net#chihaya
use_notice: true
skip_join: true
on_success: always
on_failure: always
email: false

View file

@ -1,6 +1,6 @@
# Chihaya
[![Build Status](https://api.travis-ci.org/chihaya/chihaya.svg?branch=master)](https://travis-ci.org/chihaya/chihaya)
[![Build Status](https://github.com/chihaya/chihaya/actions)](https://github.com/chihaya/chihaya/workflows/CI/badge.svg)
[![Docker Repository on Quay.io](https://quay.io/repository/jzelinskie/chihaya/status "Docker Repository on Quay.io")](https://quay.io/repository/jzelinskie/chihaya)
[![Go Report Card](https://goreportcard.com/badge/github.com/chihaya/chihaya)](https://goreportcard.com/report/github.com/chihaya/chihaya)
[![GoDoc](https://godoc.org/github.com/chihaya/chihaya?status.svg)](https://godoc.org/github.com/chihaya/chihaya)

22
dist/travis/check.sh vendored
View file

@ -1,22 +0,0 @@
#!/bin/bash
set -ex
go test -v -race $(go list ./...)
go vet $(go list ./...)
diff <(goimports -local github.com/chihaya/chihaya -d $(find . -type f -name '*.go' -not -path "./vendor/*")) <(printf "")
(for d in $(go list ./...); do diff <(golint $d) <(printf "") || exit 1; done)
go install github.com/chihaya/chihaya/cmd/chihaya
# Run e2e test with example config.
chihaya --config=./dist/travis/config_memory.yaml --debug&
pid=$!
sleep 2 # wait for Chihaya to start up (gross)
chihaya e2e --debug
kill $pid
# Run e2e test with redis.
chihaya --config=./dist/travis/config_redis.yaml --debug&
pid=$!
sleep 2 # wait for Chihaya to start up (gross)
chihaya e2e --debug
kill $pid

View file

@ -1,45 +0,0 @@
# This config file is used by travis for end-to-end testing.
# See example_config.yaml for a commented, more complete configuration!
chihaya:
announce_interval: 30m
min_announce_interval: 15m
prometheus_addr: "0.0.0.0:6880"
http:
addr: "0.0.0.0:6969"
https_addr: ""
tls_cert_path: ""
tls_key_path: ""
read_timeout: 5s
write_timeout: 5s
enable_keepalive: false
idle_timeout: 30s
enable_request_timing: false
announce_routes:
- "/announce"
scrape_routes:
- "/scrape"
allow_ip_spoofing: false
real_ip_header: "x-real-ip"
max_numwant: 100
default_numwant: 50
max_scrape_infohashes: 50
udp:
addr: "0.0.0.0:6969"
max_clock_skew: 10s
private_key: "paste a random string here that will be used to hmac connection IDs"
enable_request_timing: false
allow_ip_spoofing: false
max_numwant: 100
default_numwant: 50
max_scrape_infohashes: 50
storage:
name: memory
config:
gc_interval: 3m
peer_lifetime: 31m
shard_count: 1024
prometheus_reporting_interval: 1s

View file

@ -1,48 +0,0 @@
# This config file is used by travis for end-to-end testing.
# See example_config.yaml for a commented, more complete configuration!
chihaya:
announce_interval: 30m
min_announce_interval: 15m
prometheus_addr: "0.0.0.0:6880"
http:
addr: "0.0.0.0:6969"
https_addr: ""
tls_cert_path: ""
tls_key_path: ""
read_timeout: 5s
write_timeout: 5s
enable_keepalive: false
idle_timeout: 30s
enable_request_timing: false
announce_routes:
- "/announce"
scrape_routes:
- "/scrape"
allow_ip_spoofing: false
real_ip_header: "x-real-ip"
max_numwant: 100
default_numwant: 50
max_scrape_infohashes: 50
udp:
addr: "0.0.0.0:6969"
max_clock_skew: 10s
private_key: "paste a random string here that will be used to hmac connection IDs"
enable_request_timing: false
allow_ip_spoofing: false
max_numwant: 100
default_numwant: 50
max_scrape_infohashes: 50
storage:
name: redis
config:
gc_interval: 3m
peer_lifetime: 31m
prometheus_reporting_interval: 1s
redis_broker: "redis://127.0.0.1:6379/0"
redis_read_timeout: 15s
redis_write_timeout: 15s
redis_connect_timeout: 15s

View file

@ -1,8 +0,0 @@
#!/bin/bash
set -ex
# Install golint and go vet.
go get -u golang.org/x/lint/golint
go get -u golang.org/x/tools/cmd/...
go mod download

View file

@ -1,8 +0,0 @@
#!/bin/bash
set -ex
# Install golint and go vet.
go get -u golang.org/x/lint/golint
go get -u golang.org/x/tools/cmd/...
go get -t -u ./...