Skip to content

Commit

Permalink
Merge pull request #14 from newrelic/fix/build
Browse files Browse the repository at this point in the history
fix(build): update to latest from newrelic-forks/repolinter
  • Loading branch information
jbeveland27 authored Feb 21, 2023
2 parents f431d55 + ec041c7 commit 5fe024e
Show file tree
Hide file tree
Showing 20 changed files with 13,789 additions and 9,111 deletions.
171 changes: 84 additions & 87 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,72 +1,60 @@
name: CI
on: [push, pull_request]
name: Release
on:
push:
branches:
- main

env:
THIRD_PARTY_GIT_AUTHOR_EMAIL: opensource+repolinter-action@newrelic.com
THIRD_PARTY_GIT_AUTHOR_NAME: Actionbot
THIRD_PARTY_GIT_AUTHOR_EMAIL: opensource+bot@newrelic.com
THIRD_PARTY_GIT_AUTHOR_NAME: nr-opensource-bot

jobs:
job-test-unit:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-16.04
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Setup Node
uses: actions/setup-node@v2-beta
uses: actions/setup-node@v2
with:
node-version: '12'

- name: Get NPM Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Cache NPM
node-version: 16

- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v2
env:
cache-name: node-modules
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci

- name: Lint
run: npm run lint

- name: Typescript Build
run: npm run build

- name: NCC Package
run: npm run package

- name: Test
run: npm run test

- name: Coverage
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: codecov/codecov-action@v1

job-test-system:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-16.04
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Cache Docker layers
uses: actions/cache@v2
with:
Expand All @@ -89,7 +77,7 @@ jobs:
- name: Run Action (JSON)
id: repolinter-json
run: >
docker run -t
docker run -t
-v ${{ github.workspace }}:/github/workspace -w /github/workspace
-e INPUT_DIRECTORY=/github/workspace
-e INPUT_TOKEN=${{ github.token }}
Expand All @@ -103,18 +91,18 @@ jobs:
-e GITHUB_RUN_NUMBER=${{ github.run_number }}
-e GITHUB_ACTION=true
${{ github.repository }}:latest
- name: Verify Outputs
env:
DID_ERROR: ${{ steps.repolinter-json.outputs.errored }}
DID_PASS: ${{ steps.repolinter-json.outputs.passed }}
shell: bash
run: '[ "$DID_ERROR" = "false" ] && [ "$DID_PASS" = "true" ]'

- name: Run Action (YAML)
id: repolinter-yaml
run: >
docker run -t
docker run -t
-v ${{ github.workspace }}:/github/workspace -w /github/workspace
-e INPUT_DIRECTORY=/github/workspace
-e INPUT_TOKEN=${{ github.token }}
Expand All @@ -128,104 +116,107 @@ jobs:
-e GITHUB_RUN_NUMBER=${{ github.run_number }}
-e GITHUB_ACTION=true
${{ github.repository }}:latest
- name: Verify Outputs
env:
DID_ERROR: ${{ steps.repolinter-yaml.outputs.errored }}
DID_PASS: ${{ steps.repolinter-yaml.outputs.passed }}
shell: bash
run: '[ "$DID_ERROR" = "false" ] && [ "$DID_PASS" = "true" ]'

job-generate-third-party-notices:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
needs: [job-test-unit, job-test-system]
steps:
# Checkout fetch-depth: 2 because there's a check to see if package.json
# was updated, and need at least 2 commits for the check to function properly
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 2

# Probably not necessary since the ubuntu-latest image would have latest Node LTS release
# and nothing in this job _needs_ older Node
- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: 12.x
node-version: 16

- name: Get NPM Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Cache NPM
- name: Download Cached Deps
id: cache-node-modules
uses: actions/cache@v2
env:
cache-name: node-modules
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci

- name: Install OSS CLI
run: |
sudo npm install -g @newrelic/newrelic-oss-cli
- name: Generate Third Party Notices
run: |
if [ ! -f "third_party_manifest.json" ]; then
echo "::error::third_party_manifest.json is missing. Must generate using the newrelic-oss-cli."
exit 1
fi
# latest commit
LATEST_COMMIT=$(git rev-parse HEAD)
# latest commit where package.json was changed
LAST_CHANGED_COMMIT=$(git log -1 --format=format:%H --full-diff package.json)
if [ $LAST_CHANGED_COMMIT = $LATEST_COMMIT ]; then
git config user.email "${{ env.THIRD_PARTY_GIT_AUTHOR_EMAIL }}"
git config user.name "${{ env.THIRD_PARTY_GIT_AUTHOR_NAME }}"
oss third-party manifest
oss third-party notices
git add third_party_manifest.json
git add THIRD_PARTY_NOTICES.md
git commit -m 'chore: update third-party manifest and notices [skip ci]'
git push origin ${GITHUB_REF#/refs/heads/}
git push origin ${GITHUB_REF#/refs/heads/}
else
echo "No change in package.json, not regenerating third-party notices"
fi
job-generate-release:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
needs: [job-test-unit, job-test-system, job-generate-third-party-notices]
steps:
# Checkout ref: main because previous job committed third_party_notices and
# we need to checkout main to pick up that commit
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: main

- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: 12.x

- name: Get NPM Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Cache NPM
node-version: 16

- name: Download Cached Deps
id: cache-node-modules
uses: actions/cache@v2
env:
cache-name: node-modules
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci

- name: Build
run: npm run build

Expand All @@ -234,15 +225,21 @@ jobs:

- name: Semantic Release
id: semantic
uses: cycjimmy/semantic-release-action@v2
uses: cycjimmy/semantic-release-action@v3
with:
extra_plugins: |
@semantic-release/git
@semantic-release/changelog
@semantic-release/exec
env:
# Use nr-opensource-bot for authoring commits done by
# semantic-release (rather than using @semantic-release-bot)
GIT_AUTHOR_NAME: ${{ env.THIRD_PARTY_GIT_AUTHOR_NAME }}
GIT_AUTHOR_EMAIL: ${{ env.THIRD_PARTY_GIT_AUTHOR_EMAIL }}
GIT_COMMITTER_NAME: ${{ env.THIRD_PARTY_GIT_AUTHOR_NAME }}
GIT_COMMITTER_EMAIL: ${{ env.THIRD_PARTY_GIT_AUTHOR_EMAIL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Cache Docker layers
if: steps.semantic.outputs.new_release_published == 'true'
uses: actions/cache@v2
Expand All @@ -251,7 +248,7 @@ jobs:
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Set up Docker Buildx
if: steps.semantic.outputs.new_release_published == 'true'
uses: docker/setup-buildx-action@v1
Expand All @@ -261,13 +258,13 @@ jobs:
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_PAT }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Gather Docker Labels
if: steps.semantic.outputs.new_release_published == 'true'
id: docker_meta
uses: crazy-max/ghaction-docker-meta@55d3462 #v1.9.1
uses: crazy-max/ghaction-docker-meta@v2
with:
images: ghcr.io/${{ github.repository }}

Expand Down
Loading

0 comments on commit 5fe024e

Please sign in to comment.