Skip to content

Commit

Permalink
Merge pull request webosbrew#168 from throwaway96/workflows-20240203
Browse files Browse the repository at this point in the history
Refactor workflows
  • Loading branch information
throwaway96 authored Mar 4, 2024
2 parents 385edf9 + 4418f8c commit 582df90
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 63 deletions.
22 changes: 11 additions & 11 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,32 @@ name: Build Binaries
on:
workflow_dispatch:
inputs:
commit:
description: 'Commit binaries'
required: false
default: false
type: boolean
commit:
description: 'Commit binaries'
required: false
default: false
type: boolean

env:
TARGET_DIR: /tmp/output
COMMIT_DIR: ${{github.workspace}}/services/bin
COMMIT_DIR: ${{ github.workspace }}/services/bin

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Run build-binaries.sh
run: ${{github.workspace}}/tools/build-binaries.sh
run: ${{ github.workspace }}/tools/build-binaries.sh
shell: bash

- name: Upload binaries as artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: binaries-${{github.run_id}}
path: ${{env.TARGET_DIR}}
name: binaries-${{ github.run_id }}
path: ${{ env.TARGET_DIR }}
if-no-files-found: error

- name: Commit binaries
Expand Down
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
37 changes: 4 additions & 33 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Build & Test
name: 'Lint & Build'

on:
push:
Expand All @@ -12,32 +9,6 @@ on:

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18]
# 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@v3
with:
name: hbchannel-ipk
path: ${{github.workspace}}/${{ env.FILENAME_IPK }}
uses: ./.github/workflows/build.yml
with:
fail-on-lint-error: true
33 changes: 14 additions & 19 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,37 @@
name: Build & Release
name: 'Build & Release'

on:
release:
types: [created]

jobs:
build-and-release:
build:
uses: ./.github/workflows/build.yml

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 18
uses: actions/setup-node@v4
with:
node-version: 18

- 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@v1.3.2
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 582df90

Please sign in to comment.