Skip to content

Commit

Permalink
ci: merge build steps into reusable workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
throwaway96 committed Feb 4, 2024
1 parent c129d98 commit 4418f8c
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 50 deletions.
60 changes: 60 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 'Build IPK and manifest'

on:
workflow_call:
inputs:
fail-on-lint-error:
description: 'Fail on lint error'
required: false
default: false
type: boolean
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Check out repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run lint
run: npm run lint
continue-on-error: ${{ github.event_name != 'workflow_call' || inputs.fail-on-lint-error }}

- name: Build frontend
run: npm run build -- --production

- name: Build service
run: npm run build-service -- --env production

- name: Create IPK
run: npm run package

- name: Create manifest
run: npm run manifest

- name: Upload IPK
uses: actions/upload-artifact@v4
with:
name: hbchannel-ipk
path: '*.ipk'
if-no-files-found: error

- name: Upload manifest
uses: actions/upload-artifact@v4
with:
name: hbchannel-manifest
path: '*.manifest.json'
if-no-files-found: error
31 changes: 3 additions & 28 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,6 @@ on:

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- run: npm ci
- run: npm run lint
- run: npm run build -- --production
- run: npm run build-service -- --env production
- run: npm run package
- run: 'echo "FILENAME_IPK=$(ls -- *.ipk)" >> "${GITHUB_ENV}"'
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: hbchannel-ipk
path: ${{ github.workspace }}/${{ env.FILENAME_IPK }}
uses: ./.github/workflows/build.yml
with:
fail-on-lint-error: true
34 changes: 12 additions & 22 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,33 @@ on:
types: [created]

jobs:
build-and-release:
runs-on: ubuntu-latest
build:
uses: ./.github/workflows/build.yml

strategy:
matrix:
node-version: [20]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
release:
needs: build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
submodules: recursive

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- run: npm ci
- run: npm run build -- --production
- run: npm run build-service -- --env production
- run: npm run package
- run: npm run manifest
pattern: 'hbchannel-*'
merge-multiple: true

- name: Get release
id: get_release
uses: bruceadams/get-release@74c3d60f5a28f358ccf241a00c9021ea16f0569f
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Upload Release assets
- name: Upload IPK
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Release ${{ steps.get_release.outputs.tag_name }}
allowUpdates: true
omitNameDuringUpdate: true
omitBodyDuringUpdate: true
omitDraftDuringUpdate: true
omitPrereleaseDuringUpdate: true
artifacts: '*.ipk,org.webosbrew.hbchannel.manifest.json'
artifacts: '*.ipk,*.manifest.json'

0 comments on commit 4418f8c

Please sign in to comment.