diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 00000000..1deb4774 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,90 @@ +name: CI (Linux) + +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: + - master + +jobs: + build_and_test: + strategy: + fail-fast: false + matrix: + version: + - 1.51.0 + + name: ${{ matrix.version }} - x86_64-unknown-linux-gnu + runs-on: ubuntu-latest + + services: + postgres: + image: postgres + env: + POSTGRES_PASSWORD: password + POSTGRES_USER: postgres + POSTGRES_DB: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v2 + - name: ⚡ Cache + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + node_modules + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + + - uses: actions/setup-node@v2 + with: + node-version: '14.x' + + - name: Install JavaScript Dependencies + run: yarn install + + - name: Run the tests + run: yarn test + + - name: Install ${{ matrix.version }} + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.version }}-x86_64-unknown-linux-gnu + profile: minimal + override: true + + - name: Run migrations + uses: actions-rs/cargo@v1 + with: + command: run + args: --bin tests-migrate + env: + DATABASE_URL: postgres://postgres:password@localhost:5432/postgres + + - name: Generate coverage file + if: matrix.version == '1.51.0' && (github.ref == 'refs/heads/master' || github.event_name == 'pull_request') + uses: actions-rs/tarpaulin@v0.1 + with: + version: '0.15.0' + args: '-t 1200' + env: + DATABASE_URL: postgres://postgres:password@localhost:5432/postgres + # GIT_HASH is dummy value. I guess build.rs is skipped in tarpaulin + # execution so this value is required for preventing meta tests from + # panicking + GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61 + OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61 + CACHE_BUSTER_FILE_MAP: '{"map":{"./static/bundle/main.js":"./prod/bundle/main.1417115E59909BE0A01040A45A398ADB09D928DF89CCF038FA44B14850442096.js"},"base_dir":"./prod"}' + + - name: Upload to Codecov + if: matrix.version == '1.51.0' && (github.ref == 'refs/heads/master' || github.event_name == 'pull_request') + uses: codecov/codecov-action@v1 diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b8b9dc12..8996110f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -13,8 +13,8 @@ jobs: fail-fast: false matrix: version: - - stable - - nightly + - 1.51.0 + # - nightly name: ${{ matrix.version }} - x86_64-unknown-linux-gnu runs-on: ubuntu-latest @@ -56,9 +56,6 @@ jobs: - name: Build Frontend run: yarn build - - name: Run the tests - run: yarn test - - name: Install ${{ matrix.version }} uses: actions-rs/toolchain@v1 with: @@ -91,29 +88,8 @@ jobs: env: DATABASE_URL: postgres://postgres:password@localhost:5432/postgres - - name: Generate coverage file - if: matrix.version == 'stable' && (github.ref == 'refs/heads/master' || github.event_name == 'pull_request') - uses: actions-rs/tarpaulin@v0.1 - with: - version: '0.15.0' - args: '-t 1200' - env: - DATABASE_URL: postgres://postgres:password@localhost:5432/postgres - # GIT_HASH is dummy value. I guess build.rs is skipped in tarpaulin - # execution so this value is required for preventing meta tests from - # panicking - GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61 - OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61 - CACHE_BUSTER_FILE_MAP: '{"map":{"./static/bundle/main.js":"./prod/bundle/main.1417115E59909BE0A01040A45A398ADB09D928DF89CCF038FA44B14850442096.js"},"base_dir":"./prod"}' - - - name: Upload to Codecov - if: matrix.version == 'stable' && (github.ref == 'refs/heads/master' || github.event_name == 'pull_request') - uses: codecov/codecov-action@v1 - # with: - # files: cobertura.xml, ./coverage/clover.xml - - name: generate documentation - if: matrix.version == 'stable' && (github.repository == 'mCaptcha/guard') + if: matrix.version == '1.51.0' && (github.repository == 'mCaptcha/guard') uses: actions-rs/cargo@v1 with: command: doc @@ -124,7 +100,7 @@ jobs: OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61 - name: Deploy to GitHub Pages - if: matrix.version == 'stable' && (github.repository == 'mCaptcha/guard') + if: matrix.version == '1.51.0' && (github.repository == 'mCaptcha/guard') uses: JamesIves/github-pages-deploy-action@3.7.1 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}