name: Workflow for Codecov Action on: [push, pull_request] jobs: run: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Checkout uses: actions/checkout@v4.1.6 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Run tests and collect coverage run: npm run test - name: Upload coverage to Codecov (script) uses: ./ with: fail_ci_if_error: true files: ./coverage/script/coverage-final.json flags: script,${{ matrix.os }} name: codecov-script verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (demo) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: demo,${{ matrix.os }} name: codecov-demo verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (version) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: version,${{ matrix.os }} name: codecov-version version: v0.6.0 verbose: true token: ${{ secrets.CODECOV_TOKEN }} run-alpine-x86: runs-on: ubuntu-latest steps: - name: Setup alpine uses: jirutka/setup-alpine@v1 - name: Checkout uses: actions/checkout@v4.1.6 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Run tests and collect coverage run: npm run test - name: Detect os run: | family=$(uname -s | tr '[:upper:]' '[:lower:]') codecov_os="windows" [[ $family == "darwin" ]] && codecov_os="macos" [[ $family == "linux" ]] && codecov_os="linux" [[ $codecov_os == "linux" ]] && \ osID=$(grep -e "^ID=" /etc/os-release | cut -c4-) [[ $osID == "alpine" ]] && codecov_os="alpine" echo "Detected ${codecov_os}" shell: alpine.sh {0} - name: Upload coverage to Codecov (script) uses: ./ with: fail_ci_if_error: true files: ./coverage/script/coverage-final.json flags: script,alpine name: codecov-script os: alpine verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} - name: Upload coverage to Codecov (demo) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: demo,alpine name: codecov-demo os: alpine verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} - name: Upload coverage to Codecov (version) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: version,alpine name: codecov-version os: alpine version: v0.6.0 verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} run-alpine-aarch64: runs-on: ubuntu-latest steps: - name: Setup alpine uses: jirutka/setup-alpine@v1 with: arch: aarch64 - name: Checkout uses: actions/checkout@v4.1.6 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Run tests and collect coverage run: npm run test - name: Detect os run: | family=$(uname -s | tr '[:upper:]' '[:lower:]') codecov_os="windows" [[ $family == "darwin" ]] && codecov_os="macos" [[ $family == "linux" ]] && codecov_os="linux" [[ $codecov_os == "linux" ]] && \ osID=$(grep -e "^ID=" /etc/os-release | cut -c4-) [[ $osID == "alpine" ]] && codecov_os="alpine" echo "Detected ${codecov_os}" shell: alpine.sh {0} - name: Upload coverage to Codecov (script) uses: ./ with: fail_ci_if_error: true files: ./coverage/script/coverage-final.json flags: script,alpine-arm64 name: codecov-script os: alpine-arm64 verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} - name: Upload coverage to Codecov (demo) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: demo,alpine-arm64 name: codecov-demo os: alpine-arm64 verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} - name: Upload coverage to Codecov (version) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: version,alpine-arm64 name: codecov-version os: alpine-arm64 version: v0.6.0 verbose: true token: ${{ secrets.CODECOV_TOKEN }} shell: alpine.sh {0} run-macos-latest-xlarge: if: github.head.repo.full_name == 'codecov/codecov-action' runs-on: macos-latest-xlarge steps: - name: Checkout uses: actions/checkout@v4.1.6 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Run tests and collect coverage run: npm run test - name: Upload coverage to Codecov (script) uses: ./ with: fail_ci_if_error: true files: ./coverage/script/coverage-final.json flags: script,macos-latest-xlarge name: codecov-script verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (demo) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: demo,macos-latest-xlarge name: codecov-demo verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (version) uses: ./ with: fail_ci_if_error: true files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: version,macos-latest-xlarge name: codecov-version version: v0.6.0 verbose: true token: ${{ secrets.CODECOV_TOKEN }} run-container: runs-on: ubuntu-latest container: node:18 steps: - name: Checkout uses: actions/checkout@v4.1.6 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Run tests and collect coverage run: npm run test - name: Upload coverage to Codecov (script) uses: ./ with: files: ./coverage/script/coverage-final.json flags: script,${{ matrix.os }} name: codecov-script verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (demo) uses: ./ with: files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: demo,${{ matrix.os }} name: codecov-demo verbose: true token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage to Codecov (version) uses: ./ with: files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json file: ./coverage/coverage-final.json flags: version,${{ matrix.os }} name: codecov-version version: v0.6.0 verbose: true token: ${{ secrets.CODECOV_TOKEN }}