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 container: image: ghcr.io/linuxcontainers/alpine:3.18.0@sha256:eb2b13602562cca1424257ab17945d5c7e402764da66a6216d9de385e5f9e3ad steps: - name: Install deps for alpine run: | apk add --update nodejs npm git curl node -v which node - 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}" - 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 }} - 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 }} - 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 }} run-alpine-aarch64: runs-on: ubuntu-latest container: image: ghcr.io/linuxcontainers/alpine:3.18.0@sha256:b333a6ba512596007c2683825dd364570303624164926019bbe674d90c28d5fc steps: - name: Install deps for alpine run: | apk add --update nodejs npm git curl node -v which node - 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 }} - 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 }} - 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 }} 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 }}