Skip to content

Merge pull request #82 from solarwindscloud/NH-55977 #483

Merge pull request #82 from solarwindscloud/NH-55977

Merge pull request #82 from solarwindscloud/NH-55977 #483

Workflow file for this run

name: Checks
on:
- push
- pull_request
- workflow_dispatch
jobs:
checks:
runs-on: ubuntu-latest
steps:
- run: sudo apt-get update && sudo apt-get install -y clang-format
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-node@v3
with:
node-version: 18
- run: corepack enable
- uses: actions/cache@v3
with:
path: .yarn/cache
key: yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
yarn-
- uses: actions/cache@v3
with:
path: |
~/.zig-build
~/.cache/zig
key: zig-${{ hashFiles('yarn.lock') }}
restore-keys: |
zig-
- run: yarn install --immutable
- run: yarn build
- run: yarn lint
- run: yarn test
env:
TEST_SERVICE_KEY: ${{ secrets.TEST_SERVICE_KEY }}
TEST_COLLECTOR: ${{ secrets.TEST_COLLECTOR }}
# load bearing .root file
# actions/upload-artifact will make the archive root the topmost directory which contains all specified files
# we can force it to be the root of the repo by including an empty file present at the root
# see https://github.com/actions/upload-artifact#upload-using-multiple-paths-and-exclusions
- run: touch .root
- if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v3
with:
name: build
path: |
.root
packages/**/dist/
packages/bindings/npm/*/oboe.node
packages/bindings/npm/*/metrics.node
packages/bindings/npm/*/liboboe.so
retention-days: 1
versions:
if: github.event_name == 'pull_request' && !contains(github.head_ref, 'release')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 18
- run: corepack enable
- uses: actions/cache@v3
with:
path: .yarn/cache
key: yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
yarn-
- run: yarn install --immutable
- run: yarn version check
launch-arm64:
if: github.event_name == 'pull_request'
outputs:
matrix: ${{ steps.launch.outputs.matrix }}
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.CI_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CI_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- id: launch
uses: solarwindscloud/ec2-runner-action@main
with:
action: launch
github-token: ${{ secrets.CI_GITHUB_TOKEN }}
matrix: |
16-alpine3.15
16-amazonlinux2
16-debian10
16-ubi8
16-ubuntu18.04
18-alpine
18-debian
18-ubi
18-ubuntu
20-alpine
20-debian
20-ubi
20-ubuntu
runner-user: github
runner-directory: /gh
instance-type: t4g.medium
ami-name: gha-arm64-ubuntu22-.*
ami-owner: "858939916050"
subnet-id: subnet-0fd499f8a50e41807
security-group-ids: sg-0fd8d8cd6effda4a5
tests:
if: github.event_name == 'pull_request'
needs:
- checks
- launch-arm64
runs-on: ${{ matrix.arch == 'arm64' && fromJSON(needs.launch-arm64.outputs.matrix)[matrix.image].label || 'ubuntu-latest' }}
strategy:
matrix:
image:
- 16-alpine3.15
- 16-amazonlinux2
- 16-debian10
- 16-ubi8
- 16-ubuntu18.04
- 18-alpine
# - 18-amazonlinux - https://github.com/amazonlinux/amazon-linux-2023/issues/365
- 18-debian
- 18-ubi
- 18-ubuntu
- 20-alpine
# - 20-amazonlinux - https://github.com/amazonlinux/amazon-linux-2023/issues/365
- 20-debian
- 20-ubi
- 20-ubuntu
arch:
- x64
- arm64
fail-fast: false
container:
image: ghcr.io/${{ github.repository }}/dev:${{ matrix.image }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
YARN_IGNORE_NODE: 1
steps:
- if: matrix.arch == 'arm64' && contains(matrix.image, 'alpine')
run: sed -i "s/ID=alpine/ID=armpine/" /etc/os-release
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/download-artifact@v3
with:
name: build
path: ./
- uses: actions/cache@v3
with:
path: .yarn/cache
key: yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
yarn-
- run: yarn install --immutable
- run: yarn test --only
env:
TEST_SERVICE_KEY: ${{ secrets.TEST_SERVICE_KEY }}
TEST_COLLECTOR: ${{ secrets.TEST_COLLECTOR }}
terminate-arm64:
if: always() && github.event_name == 'pull_request'
needs:
- launch-arm64
- tests
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.CI_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CI_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: solarwindscloud/ec2-runner-action@main
with:
action: terminate
github-token: ${{ secrets.CI_GITHUB_TOKEN }}
matrix: ${{ needs.launch-arm64.outputs.matrix }}