brightdigit/MistKit

View on GitHub
.github/workflows/ubuntu.yml

Summary

Maintainability
Test Coverage
name: ubuntu

on: [push]

jobs:
  build:
    env:
      PACKAGE_NAME: MistKit
      SWIFT_VER: ${{ matrix.swift-version }}

    runs-on: ${{ matrix.runs-on }}
    if: "!contains(github.event.head_commit.message, 'ci skip')"

    strategy:
      matrix:
        runs-on:  [ubuntu-18.04,ubuntu-20.04]
        swift-version: [5.2.4, 5.3.3, 5.4.1, 5.5]
    steps:
    - uses: actions/checkout@v2
    - name: Set Ubuntu Release DOT
      run: echo "RELEASE_DOT=$(lsb_release -sr)" >> $GITHUB_ENV
    - name: Set Ubuntu Release NUM
      run: echo "RELEASE_NUM=${RELEASE_DOT//[-._]/}"  >> $GITHUB_ENV
    - name: Set Ubuntu Codename
      run: echo "RELEASE_NAME=$(lsb_release -sc)"  >> $GITHUB_ENV
    - name: Download Swift
      run: curl -O https://swift.org/builds/swift-${SWIFT_VER}-release/ubuntu${RELEASE_NUM}/swift-${SWIFT_VER}-RELEASE/swift-${SWIFT_VER}-RELEASE-ubuntu${RELEASE_DOT}.tar.gz
    - name: Extract Swift
      run: tar xzf swift-${SWIFT_VER}-RELEASE-ubuntu${RELEASE_DOT}.tar.gz
    - name: Add Path
      run: echo "$GITHUB_WORKSPACE/swift-${SWIFT_VER}-RELEASE-ubuntu${RELEASE_DOT}/usr/bin" >> $GITHUB_PATH
    - name: Build
      run: swift build
    - name: Run tests
      run: swift test --enable-test-discovery --enable-code-coverage
    - name: Prepare Code Coverage
      run: llvm-cov export -format="lcov" .build/x86_64-unknown-linux-gnu/debug/${{ env.PACKAGE_NAME }}PackageTests.xctest -instr-profile .build/debug/codecov/default.profdata > info.lcov
    - name: Upload to CodeCov.io
      run: bash <(curl https://codecov.io/bash) -F github -F ${RELEASE_NAME} -F ${SWIFT_VER}
      env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}