Skip to content

Commit

Permalink
🌱 Refactor CI github actions, Dockerfile
Browse files Browse the repository at this point in the history
Refactoring:
  - Split repo and global CI to two different yaml files

  - Only enable global CI on main (with a note)

  - Global CI configured like the multiarch build to cancel
    in progress runs in a new run starts

  - Repo CI bump the version of action `codecov/codecov-action`
    based on runtime warnings

  - Add `--ignoreScripts` to the `npm clean-install` in the Dockerfile
    to avoid running unnecessary postinstall scripts with the build
    running directly after the install.

Maybe?
  - Repo CI should use node and npm versions from the
    root `package.json` when setting up node.  This will
    help ensure CI runs with the intended node/npm versions.

Signed-off-by: Scott J Dickerson <[email protected]>
  • Loading branch information
sjd78 committed Mar 15, 2024
1 parent eeee08a commit 3fe548e
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 79 deletions.
78 changes: 0 additions & 78 deletions .github/workflows/ci-actions.yml

This file was deleted.

54 changes: 54 additions & 0 deletions .github/workflows/ci-global.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CI (global konveyor CI)

on:
push:
branches:
- "main"
pull_request:
branches:
- "main"

###
# The global CI settings need to be adjusted for the `release-*`` branches such that:
# 1. The operator uses the correct `:release-*` images
# 2. The `*-tests_ref` use the correct branches
#
# on:
# push:
# branches:
# - 'main'
# - 'release-*'
# pull_request:
# branches:
# - 'main'
# - 'release-*'
##

concurrency:
group: ci-global-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-upload-for-global-ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: save tackle2-ui image
run: |
docker build . -t quay.io/konveyor/tackle2-ui:latest
docker save -o /tmp/tackle2-ui.tar quay.io/konveyor/tackle2-ui:latest
- name: Upload tackle2-ui image as artifact
uses: actions/upload-artifact@v3
with:
name: tackle2-ui
path: /tmp/tackle2-ui.tar
retention-days: 1

run-global-ci:
needs: build-and-upload-for-global-ci
uses: konveyor/ci/.github/workflows/global-ci.yml@main
with:
component_name: tackle2-ui
run_api_tests: false
56 changes: 56 additions & 0 deletions .github/workflows/ci-repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: CI (repo level)

on:
push:
branches:
- "main"
- "release-*"
pull_request:
branches:
- "main"
- "release-*"

env:
# Note: This should match the node version(s) used in the base Dockerfile
node-version: "18"

jobs:
unit-test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Use Node.js (version "${{ env.node-version }}")
uses: actions/setup-node@v4
with:
# node-version-file: "package.json"
node-version: ${{ env.node-version }}
cache: "npm"

- name: Verify package-lock.json
run: ./scripts/verify_lock.mjs

- name: Install
run: npm clean-install --ignore-scripts

- name: Lint sources
run: npm run lint

- name: Build
run: npm run build

- name: Test
run: npm run test -- --coverage --watchAll=false

- name: Upload to codecov (client)
uses: codecov/codecov-action@v4
with:
flags: client
directory: ./*/coverage

- name: Upload to codecov (server)
uses: codecov/codecov-action@v4
with:
flags: server
directory: ./*/coverage
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM registry.access.redhat.com/ubi9/nodejs-18:latest as builder

USER 1001
COPY --chown=1001 . .
RUN npm clean-install && npm run build && npm run dist
RUN npm clean-install --ignore-scripts && npm run build && npm run dist

# Runner image
FROM registry.access.redhat.com/ubi9/nodejs-18-minimal:latest
Expand Down

0 comments on commit 3fe548e

Please sign in to comment.