From 934385ff5535ee32a90d95411f99db933ad805a8 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sun, 15 Sep 2019 11:32:12 -0700 Subject: Replace Travis by GitHub Actions --- .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/ci.yml (limited to '.github') diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..de999ef --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,95 @@ +name: CI Workflow +on: + pull_request: + branches: + - master + +jobs: + + linters: + name: Linter Check + runs-on: ubuntu-latest + steps: + - name: Set up Go + uses: actions/setup-go@v1 + with: + go-version: 1.13 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v1 + with: + fetch-depth: 3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install linters + run: | + cd /tmp && go get -u golang.org/x/lint/golint + sudo npm install -g jshint + env: + GO111MODULE: off + - name: Run golint + run: | + export PATH=/home/runner/go/bin:$PATH + make lint + - name: Run jshint + run: jshint ui/static/js/*.js + + unit-tests: + name: Unit Tests + runs-on: ${{ matrix.os }} + strategy: + max-parallel: 4 + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + go-version: [1.11, 1.12, 1.13] + steps: + - name: Set up Go + uses: actions/setup-go@v1 + with: + go-version: ${{ matrix.go-version }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v1 + with: + fetch-depth: 3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Run unit tests + run: make test + + integration-tests: + name: Integration Tests + runs-on: ubuntu-latest + services: + postgres: + image: postgres:9.5 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + steps: + - name: Set up Go + uses: actions/setup-go@v1 + with: + go-version: 1.13 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v1 + with: + fetch-depth: 3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install Postgres client + run: sudo apt-get install -y postgresql-client + - name: Run integration tests + run: make integration-test + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PGHOST: 127.0.0.1 + PGPASSWORD: postgres -- cgit v1.2.3