diff options
author | Frédéric Guillot <fred@miniflux.net> | 2019-09-15 11:32:12 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2019-09-15 11:48:15 -0700 |
commit | 934385ff5535ee32a90d95411f99db933ad805a8 (patch) | |
tree | ed0af96aa1c0e13e2dd6a41e489bd196849a6195 /.github | |
parent | fb9a1a61297a8f1882d27067f69d84d46c8286e7 (diff) |
Replace Travis by GitHub Actions
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/ci.yml | 95 |
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 |