Browse Source

Replace Travis by GitHub Actions

Frédéric Guillot 1 month ago
parent
commit
934385ff55
4 changed files with 97 additions and 22 deletions
  1. 95 0
      .github/workflows/ci.yml
  2. 0 20
      .travis.yml
  3. 0 1
      README.md
  4. 2 1
      reader/json/parser_test.go

+ 95 - 0
.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

+ 0 - 20
.travis.yml

@@ -1,20 +0,0 @@
-notifications:
-  email: false
-services:
-  - postgresql
-addons:
-  postgresql: "9.4"
-language: go
-go_import_path: "miniflux.app"
-go:
-  - "1.11"
-  - "1.12"
-  - "1.13"
-before_install:
-  - npm install -g jshint
-  - go get -u golang.org/x/lint/golint
-script:
-  - jshint ui/static/js/*.js
-  - make lint
-  - make test
-  - make integration-test

+ 0 - 1
README.md

@@ -1,6 +1,5 @@
 Miniflux 2
 ==========
-[![Build Status](https://travis-ci.org/miniflux/miniflux.svg?branch=master)](https://travis-ci.org/miniflux/miniflux)
 [![GoDoc](https://godoc.org/miniflux.app?status.svg)](https://godoc.org/miniflux.app)
 
 Miniflux is a minimalist and opinionated feed reader:

+ 2 - 1
reader/json/parser_test.go

@@ -283,7 +283,8 @@ func TestParseFeedItemWithInvalidDate(t *testing.T) {
 		t.Errorf("Incorrect number of entries, got: %d", len(feed.Entries))
 	}
 
-	if !feed.Entries[0].Date.Before(time.Now()) {
+	duration := time.Since(feed.Entries[0].Date)
+	if duration.Seconds() > 1 {
 		t.Errorf("Incorrect entry date, got: %v", feed.Entries[0].Date)
 	}
 }