aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2019-09-15 11:32:12 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2019-09-15 11:48:15 -0700
commit934385ff5535ee32a90d95411f99db933ad805a8 (patch)
treeed0af96aa1c0e13e2dd6a41e489bd196849a6195 /.github
parentfb9a1a61297a8f1882d27067f69d84d46c8286e7 (diff)
Replace Travis by GitHub Actions
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ci.yml95
1 files changed, 95 insertions, 0 deletions
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