Skip to content

chore(ci): switch to GHA from circleci #29

chore(ci): switch to GHA from circleci

chore(ci): switch to GHA from circleci #29

Workflow file for this run

name: Test and Deploy
on:
pull_request:
push:
branches:
- main
jobs:
build-linux-and-osx:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- name: Install deps
run: npm ci
- name: Test
run: make test
- name: Build
run: make build
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
if-no-files-found: error
path: |
coverage/
out/
package.json
vendor/
build-alpine:
runs-on: ubuntu-latest
container: alpine:3.18.4@sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978
needs: build-linux-and-osx
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download prebuilt static node binary
run: |
apk add wget coreutils make
NODE_RELEASE=node.v16.2.0_b57a0d7c9ecba551879997ac44bba3c9d9443df5
wget https://github.com/codecov/node-static-alpine/releases/download/$NODE_RELEASE/node
wget https://github.com/codecov/node-static-alpine/releases/download/$NODE_RELEASE/SHA1SUM
wget https://github.com/codecov/node-static-alpine/releases/download/$NODE_RELEASE/SHA256SUM
wget https://github.com/codecov/node-static-alpine/releases/download/$NODE_RELEASE/SHA512SUM
for i in 1 256 512; do "sha${i}sum" -c "SHA${i}SUM"; done
- name: Confirm that alpine node binary is static
run: |
apk add file
(file node | grep 'static') || exit ${?}
- name: Create pkg-cache directory and copy static NodeJS binary
run: |
mkdir -p ~/.pkg-cache/v2.6
cp node /root/.pkg-cache/v2.6/fetched-v14.0.0-alpine-x64
- name: Remove downloaded binary and run tests
run: |
rm -rf node
apk add npm git
npm ci
npm test
mkdir -p coverage-alpine
cp -r coverage/* coverage-alpine/
- name: Build uploader binary on alpine
run: make build_alpine
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
if-no-files-found: error
path: |
coverage-alpine
out/codecov-alpine
build-windows:
runs-on: windows-latest
needs: build-linux-and-osx
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- name: Install deps
run: |
$ErrorActionPreference="Stop"
node --version
npm ci; npm test
- name: Build
run: |
$ErrorActionPreference="Stop"
npm run build; npm run build-windows
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
if-no-files-found: error
path: |
coverage/
out/codecov.exe
test-linux:
runs-on: ubuntu-latest
needs: build-linux-and-osx
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/download-artifact@v3
- name: Confirm that linux uploader binary is static
run: (file out/codecov-linux | grep 'static') || exit ${?}
- name: Remove test coverage files
run: rm -rf *.coverage.txt coverage-report-test.json test/fixtures || echo
- name: Update exec permission
run: chmod u+x out/codecov-linux
- name: Run Linux binary -f (dry run)
run: |
out/codecov-linux -f coverage/cobertura-coverage.xml -F linux -d -Z -v | tee output_linux.txt
- name: Run Linux binary auto-detect (dry run)
run: |
out/codecov-linux -F linux -d -Z | tee -a output_linux.txt
- name: Run Linux binary (upload)
run: |
out/codecov-linux -F linux -Z
out/codecov-linux -F "-linux" -Z
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
if-no-files-found: error
path: |
output_linux.txt