Skip to content

Commit

Permalink
added CI/CD
Browse files Browse the repository at this point in the history
Signed-off-by: StoneyDSP <nathanjhood@googlemail.com>
  • Loading branch information
nathanjhood committed Oct 16, 2024
1 parent fe6c844 commit f40b451
Show file tree
Hide file tree
Showing 2 changed files with 174 additions and 0 deletions.
97 changes: 97 additions & 0 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: node

on:
# Runs on all pushes
push:
# # A push is made to a GitHub Pages-enabled branch
# page_build:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# When pushing new commits, cancel any running builds on that branch
concurrency:
group: node-${{ github.ref }}
cancel-in-progress: true

env:
PROJECT_NAME: 'ts-web-components'
PROJECT_VERSION: '0.1.0.${{ github.sha }}'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_ENV: 'production'
BUILD_DIR: 'dist'
TSC_COMPILE_ON_ERROR: false

jobs:
run:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [20, latest]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: yarn
cache-dependency-path: yarn.lock

- name: Environment
shell: bash
working-directory: ${{ github.workspace }}
run: |
cp .env .env.local
cp .env.test .env.test.local
cp .env.development .env.development.local
cp .env.production .env.production.local
- name: Install
shell: bash
working-directory: ${{ github.workspace }}
run: yarn

# - name: Test
# shell: bash
# env:
# NODE_ENV: test
# working-directory: ${{ github.workspace }}
# run: yarn test

- name: Build
shell: bash
env:
NODE_ENV: production
working-directory: ${{ github.workspace }}
run: yarn build

# - name: Start
# shell: bash
# env:
# NODE_ENV: production
# working-directory: ${{ github.workspace }}
# run: yarn start build

- name: Pack
shell: bash
env:
NODE_ENV: production
working-directory: ${{ github.workspace }}
run: yarn pack --filename ${{ env.PROJECT_NAME }}-${{ env.PROJECT_VERSION }}-${{ matrix.os }}-node-${{ matrix.node-version }}

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.PROJECT_VERSION }}-${{ matrix.os }}-node-${{ matrix.node-version }}
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}-${{ env.PROJECT_VERSION }}-${{ matrix.os }}-node-${{ matrix.node-version }}'

- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.PROJECT_VERSION }}-${{ matrix.os }}-node-${{ matrix.node-version }}
path: '${{ github.workspace }}'
github-token: ${{ env.GITHUB_TOKEN }}
77 changes: 77 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Simple workflow for deploying static content to GitHub Pages
name: github-pages

on:
# Runs on pushes targeting the default branch
push:
branches:
- main
- release/*
- '!development/*'
# A push is made to a GitHub Pages-enabled branch
page_build:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: 'pages'
cancel-in-progress: false

env:
GITHUB_PAGES: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_ENV: 'production'
BUILD_PATH: 'dist'
PUBLIC_URL: 'https://nathanjhood.github.io/ts-web-components'
HOST: 'nathanjhood.github.io'
PORT: 80
HTTPS: true
TSC_COMPILE_ON_ERROR: false

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: actions/setup-node@v4
with:
cache: yarn
cache-dependency-path: yarn.lock
node-version: 20.17
- name: Install
shell: bash
working-directory: ${{ github.workspace }}
run: yarn
- name: Build
shell: bash
working-directory: ${{ github.workspace }}
run: yarn build
- name: Fix permissions
run: |
chmod -c -R +rX ${{ env.BUILD_PATH }}/ | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload build output
path: ${{ env.BUILD_PATH }}/
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

0 comments on commit f40b451

Please sign in to comment.