-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c3df990
commit 59f4fef
Showing
11 changed files
with
364 additions
and
130 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
name: | ||
'Build, Publish and Release' | ||
|
||
# | ||
# Automatically publish beta releases on pushes, require a manual workflow action for production releases | ||
# | ||
# Does the following | ||
# 1 - Run the documentation script against the package | ||
# 2 - Create the npm package using the package.json version tag ( or for beta releases, adds a beta tag and increments as needed ) | ||
# 3 - Publish the npm package | ||
# 4 - For releases against the latest branch, create a github release as well | ||
|
||
on: | ||
push: | ||
branches: [beta-*.*.*, beta] | ||
workflow_dispatch: | ||
|
||
jobs: | ||
get_tags: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
# checkout repo | ||
- uses: actions/checkout@v4 | ||
|
||
# get branch / tag name | ||
- name: Get Branch / Tag Name | ||
id: get_branch | ||
run: | | ||
export BRANCH_NAME=$(if [[ ${GITHUB_REF} =~ "refs/tags/" ]]; then echo ${GITHUB_REF/refs\/tags\//}; else echo ${GITHUB_REF/refs\/heads\//}; fi) | ||
echo $BRANCH_NAME | ||
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_OUTPUT | ||
# generate the image tag | ||
- name: Get Image Tag | ||
id: get_tag | ||
run: | | ||
export TARGET_IMAGE_TAG=$(if [ "${{ steps.get_branch.outputs.BRANCH_NAME }}" = "main" ]; then echo "main"; else echo "${{ steps.get_branch.outputs.BRANCH_NAME }}" | awk -F- '{ print $1 }'; fi) | ||
echo $TARGET_IMAGE_TAG | ||
echo "TARGET_IMAGE_TAG=${TARGET_IMAGE_TAG}" >> $GITHUB_OUTPUT | ||
outputs: | ||
BRANCH_NAME: ${{ steps.get_branch.outputs.BRANCH_NAME }} | ||
TARGET_IMAGE_TAG: ${{ steps.get_tag.outputs.TARGET_IMAGE_TAG }} | ||
|
||
create_documentation: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
# checkout repo | ||
- uses: actions/checkout@v4 | ||
with: | ||
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token. | ||
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. | ||
|
||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- name: Retrieve github-markdown-toc | ||
run: | | ||
wget -q https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc | ||
chmod a+x gh-md-toc | ||
- name: Create Table of Contents | ||
run: | | ||
npm run-script document --if-present | ||
rm gh-md-toc | ||
- name: Commit files | ||
run: | | ||
git config --local user.email "github-actions[bot]@users.noreply.github.com" | ||
git config --local user.name "github-actions[bot]" | ||
git add * || true | ||
git commit -a -m "Update TOC" || true | ||
- name: Push changes | ||
uses: ad-m/github-push-action@master | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
branch: ${{ github.ref }} | ||
|
||
publish_prod_release: | ||
permissions: | ||
id-token: write | ||
needs: [get_tags, create_documentation] | ||
name: Publish Release Version | ||
if: ${{ needs.get_tags.outputs.BRANCH_NAME == 'main' }} | ||
uses: homebridge/.github/.github/workflows/npm-publish.yml@latest | ||
with: | ||
install_cmd: npm ci | ||
secrets: | ||
npm_auth_token: ${{ secrets.NPM_TOKEN }} | ||
|
||
publish_test_release: | ||
permissions: | ||
id-token: write | ||
needs: [get_tags, create_documentation] | ||
name: Publish Test Version - ${{ needs.get_tags.outputs.BRANCH_NAME }} | ||
if: ${{ needs.get_tags.outputs.BRANCH_NAME != 'main' }} | ||
uses: homebridge/.github/.github/workflows/npm-publish.yml@latest | ||
with: | ||
tag: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }} | ||
dynamically_adjust_version: true | ||
npm_version_command: pre | ||
pre_id: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }} | ||
install_cmd: npm ci | ||
secrets: | ||
npm_auth_token: ${{ secrets.NPM_TOKEN }} | ||
|
||
publish_github_release: | ||
needs: [publish_prod_release] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Create Release | ||
uses: softprops/action-gh-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
tag_name: ${{ needs.publish_prod_release.outputs.NPM_VERSION }} | ||
name: Release ${{ needs.publish_prod_release.outputs.NPM_VERSION }} | ||
generate_release_notes: true | ||
draft: false | ||
prerelease: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import globals from "globals"; | ||
import pluginJs from "@eslint/js"; | ||
import pluginJest from "eslint-plugin-jest"; | ||
|
||
/** @type {import('eslint').Linter.Config[]} */ | ||
export default [ | ||
{ | ||
files: ["**/*.js"], | ||
languageOptions: { | ||
sourceType: "commonjs", // Change to "module" for ES6 | ||
globals: { | ||
...globals.browser, | ||
...globals.es2021, | ||
...globals.jest, // Add Jest globals | ||
}, | ||
}, | ||
}, | ||
pluginJs.configs.recommended, | ||
{ | ||
plugins: { | ||
jest: pluginJest, | ||
}, | ||
rules: { | ||
...pluginJest.configs.recommended.rules, | ||
"no-unused-vars": "warn", // Change no-unused-vars to a warning | ||
}, | ||
}, | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.