Skip to content

Commit

Permalink
🌱 Refactor CI github actions, Dockerfile (konveyor#1780)
Browse files Browse the repository at this point in the history
Refactoring:
  - Split CI, one for repo tests and one for global tests

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

  - Global CI configured like the multiarch build to cancel in progress
    runs if 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.

Signed-off-by: Scott J Dickerson <sdickers@redhat.com>
  • Loading branch information
sjd78 committed Mar 18, 2024
1 parent 161fba8 commit 94a04a3
Show file tree
Hide file tree
Showing 4 changed files with 110 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
55 changes: 55 additions & 0 deletions .github/workflows/ci-repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
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: ${{ 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 94a04a3

Please sign in to comment.