Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GitHub Actions workflow to build applications #626

Merged
merged 8 commits into from
Nov 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Build application
description: Build the example application

inputs:
node:
description: The node version to use
required: false
default: 18
working_directory:
description: The current working directory
required: true
config_path:
description: The path to the configuration file
required: true
test_cmd:
description: The command to run the tests
required: true
default: npm test

runs:
using: composite

steps:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node }}

- name: Install dependencies
shell: bash
run: npm ci
working-directory: ${{ inputs.working_directory }}

- name: Copy config
shell: bash
run: |
cp ${{ inputs.working_directory }}/${{ inputs.config_path }}/auth.config.ts.example ${{ inputs.working_directory }}/${{ inputs.config_path }}/auth.config.ts

- name: Build
shell: bash
run: npm run build
working-directory: ${{ inputs.working_directory }}

- name: Tests
shell: bash
run: ${{ inputs.test_cmd }}
working-directory: ${{ inputs.working_directory }}
73 changes: 73 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Build

on:
merge_group:
workflow_dispatch:
pull_request:
branches:
- main
push:
branches:
- main

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

env:
NODE_VERSION: 18
CACHE_KEY: '${{ github.ref }}-${{ github.run_id }}-${{ github.run_attempt }}'

jobs:
build_angular:
name: Build Angular
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}

- name: Build Angular
uses: ./.github/actions/build
with:
node: ${{ env.NODE_VERSION }}
working_directory: angular
config_path: src/app
test_cmd: npm run test:ci
build_react:
name: Build React
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}

- name: Build React
uses: ./.github/actions/build
with:
node: ${{ env.NODE_VERSION }}
working_directory: react
config_path: src
build_vue:
name: Build Vue
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}

- name: Build Vue
uses: ./.github/actions/build
with:
node: ${{ env.NODE_VERSION }}
working_directory: vue
config_path: src