-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* allow to release via PR * rm node 16 tests * rm the npm 6 workaround
- Loading branch information
1 parent
bd54404
commit 12c3018
Showing
5 changed files
with
8,358 additions
and
65 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,17 @@ | ||
name: Auto approve | ||
|
||
on: | ||
pull_request: | ||
types: [labeled] | ||
|
||
jobs: | ||
auto-approve: | ||
if: | | ||
github.actor == 'foxriver76' && | ||
github.event.label.name == 'automated pr 🔧' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: hmarr/auto-approve-action@v4 | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} |
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,89 @@ | ||
name: Official release | ||
|
||
on: | ||
workflow_dispatch: # Manually on demand | ||
inputs: | ||
versionBump: | ||
description: 'Type of version bump' | ||
required: true | ||
default: 'patch' | ||
type: choice | ||
options: | ||
- patch | ||
- minor | ||
- major | ||
|
||
jobs: | ||
publish-config: | ||
runs-on: ubuntu-20.04 | ||
|
||
strategy: | ||
matrix: | ||
node: [20.x] # This should be LTS | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Fetch the history, or this action won't work | ||
|
||
- name: Use Node.js ${{ matrix.node }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node }} | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Test | ||
run: npm test | ||
|
||
- name: Prepare release | ||
env: | ||
VERSION_BUMP: ${{ inputs.versionBump }} | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Github Action" | ||
npm run release -- ${VERSION_BUMP} | ||
- name: Determine the version bump | ||
id: version | ||
uses: actions/github-script@v7 | ||
with: | ||
result-encoding: string | ||
script: | | ||
const package = require('./package.json'); | ||
return package.version | ||
- name: Extract the commit body | ||
id: extract_release | ||
# The body may be multiline, therefore we need to escape some characters | ||
run: | | ||
VERSION="${{ github.ref }}" | ||
VERSION=${VERSION##*/v} | ||
echo "::set-output name=VERSION::$VERSION" | ||
BODY=$(git show -s --format=%b) | ||
BODY="${BODY//'%'/'%25'}" | ||
BODY="${BODY//$'\n'/'%0A'}" | ||
BODY="${BODY//$'\r'/'%0D'}" | ||
echo "::set-output name=BODY::$BODY" | ||
- name: Create Pull Request | ||
id: cpr | ||
uses: peter-evans/create-pull-request@v6 | ||
with: | ||
token: ${{ secrets.PR_TOKEN }} | ||
commit-message: "[OFFICIAL RELEASE] ${{ steps.version.outputs.result }}" | ||
committer: foxriver76 <[email protected]> | ||
author: foxriver76 <[email protected]> | ||
signoff: false | ||
branch: official-release | ||
delete-branch: true | ||
title: "[OFFICIAL RELEASE] ${{ steps.version.outputs.result }}" | ||
body: | | ||
${{ steps.extract_release.outputs.BODY }} | ||
labels: | | ||
automated pr 🔧 | ||
assignees: foxriver76 | ||
draft: 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,14 +25,14 @@ jobs: | |
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Use Node.js 16.x | ||
- name: Use Node.js 20.x | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 16.x | ||
node-version: 20.x | ||
|
||
|
||
- name: Install Dependencies | ||
run: npm install | ||
run: npm ci | ||
|
||
- name: Build | ||
run: npm run build:ts | ||
|
@@ -55,7 +55,7 @@ jobs: | |
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
node-version: [16.x, 18.x, 20.x] | ||
node-version: [18.x, 20.x, 22.x] | ||
os: [ubuntu-latest] | ||
|
||
steps: | ||
|
@@ -66,104 +66,99 @@ jobs: | |
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Install Dependencies | ||
run: npm install | ||
run: npm ci | ||
|
||
- name: Build | ||
run: npm run build:ts | ||
|
||
- name: Run local tests | ||
# npm downgrade to 6 (mainly for node.js 16) is needed because else testing fails | ||
# after installing additional adapters | ||
run: | | ||
npm install -g npm@6 | ||
npm test | ||
# - name: Run unit tests | ||
# run: npm run test:unit | ||
# - name: Run integration tests # (linux/osx) | ||
# if: startsWith(runner.OS, 'windows') == false | ||
# run: DEBUG=testing:* npm run test:integration | ||
# - name: Run integration tests # (windows) | ||
# if: startsWith(runner.OS, 'windows') | ||
# run: set DEBUG=testing:* & npm run test:integration | ||
run: npm test | ||
|
||
# Deploys the final package to NPM | ||
deploy: | ||
auto-merge: | ||
needs: [adapter-tests] | ||
|
||
# Trigger this step only when a commit on master is tagged with a version number | ||
if: | | ||
contains(github.event.head_commit.message, '[skip ci]') == false && | ||
github.event_name == 'push' && | ||
startsWith(github.ref, 'refs/tags/') | ||
always() && | ||
github.event_name == 'pull_request' | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
- id: automerge | ||
name: automerge | ||
uses: "pascalgn/[email protected]" | ||
env: | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
MERGE_LABELS: "automated pr 🔧" | ||
MERGE_FILTER_AUTHOR: "foxriver76" | ||
MERGE_FORKS: "false" | ||
MERGE_DELETE_BRANCH: "false" | ||
UPDATE_LABELS: "automated pr 🔧" | ||
MERGE_METHOD: "squash" | ||
MERGE_COMMIT_MESSAGE: "pull-request-title-and-description" | ||
|
||
- name: Checkout repository | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Fetch the history, or this action won't work | ||
ref: 'master' | ||
|
||
- name: Use Node.js 16.x | ||
uses: actions/setup-node@v3 | ||
- name: Use Node.js 18 | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 16.x | ||
node-version: 18 | ||
|
||
- name: Extract the version and commit body from the tag | ||
- name: Determine version | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
id: version | ||
uses: actions/github-script@v7 | ||
with: | ||
result-encoding: string | ||
script: | | ||
return require('./package.json').version; | ||
- name: Install dependencies | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
run: npm ci | ||
|
||
- name: Build | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
run: npm run build | ||
|
||
- name: Extract the commit body | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
id: extract_release | ||
# The body may be multiline, therefore we need to escape some characters | ||
run: | | ||
VERSION="${{ github.ref }}" | ||
VERSION=${VERSION##*/} | ||
VERSION=${VERSION##*v} | ||
echo "::set-output name=VERSION::$VERSION" | ||
BODY=$(git show -s --format=%b) | ||
BODY="${BODY//'%'/'%25'}" | ||
BODY="${BODY//$'\n'/'%0A'}" | ||
BODY="${BODY//$'\r'/'%0D'}" | ||
echo "::set-output name=BODY::$BODY" | ||
- name: Install Dependencies | ||
run: npm install | ||
|
||
- name: Build | ||
run: npm run build | ||
|
||
# - name: Create a clean build | ||
# run: npm run build | ||
- name: Publish legacy package to npm | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
run: | | ||
npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} | ||
npm whoami | ||
npm publish | ||
- name: Publish types package to npm | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
working-directory: build | ||
run: | | ||
npm publish | ||
- name: Create Github Release | ||
uses: actions/create-release@v1 | ||
if: steps.automerge.outputs.mergeResult == 'merged' | ||
uses: ncipollo/release-action@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
tag_name: ${{ github.ref }} | ||
release_name: Release v${{ steps.extract_release.outputs.VERSION }} | ||
tag: v${{ steps.version.outputs.result }} | ||
name: Release v${{ steps.version.outputs.result }} | ||
draft: false | ||
# Prerelease versions create pre-releases on GitHub | ||
prerelease: ${{ contains(steps.extract_release.outputs.VERSION, '-') }} | ||
body: ${{ steps.extract_release.outputs.BODY }} | ||
|
||
# - name: Notify Sentry.io about the release | ||
# run: | | ||
# npm i -g @sentry/cli | ||
# export SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} | ||
# export SENTRY_URL=https://sentry.iobroker.net | ||
# export SENTRY_ORG=iobroker | ||
# export SENTRY_PROJECT=iobroker-devices | ||
# export SENTRY_VERSION=iobroker.devices@${{ env.VERSION }} | ||
# sentry-cli releases new $SENTRY_VERSION | ||
# sentry-cli releases finalize $SENTRY_VERSION | ||
|
||
# Add the following line BEFORE finalize if repositories are connected in Sentry | ||
# sentry-cli releases set-commits $SENTRY_VERSION --auto | ||
|
||
# Add the following line BEFORE finalize if sourcemap uploads are needed | ||
# sentry-cli releases files $SENTRY_VERSION upload-sourcemaps build/ | ||
prerelease: ${{ contains(steps.version.outputs.result, '-') }} | ||
body: ${{ steps.extract_release.outputs.BODY }} |
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 |
---|---|---|
@@ -1,5 +1,4 @@ | ||
/config.json | ||
/node_modules | ||
/package-lock.json | ||
/.idea | ||
build/ |
Oops, something went wrong.