Skip to content

Commit

Permalink
Merge pull request #364 from codeoverflow-org/next
Browse files Browse the repository at this point in the history
Release nodecg-io-cli 0.4
  • Loading branch information
hlxid authored May 29, 2023
2 parents 80f1498 + d7b8e5a commit 450291e
Show file tree
Hide file tree
Showing 25 changed files with 7,808 additions and 5,570 deletions.
22 changes: 16 additions & 6 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,24 @@
"dockerfile": "Dockerfile"
},

// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/zsh"
"customizations": {
"vscode": {
"extensions": ["dbaeumer.vscode-eslint", "Orta.vscode-jest"],
"settings": {
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash",
"icon": "terminal-bash"
},
"zsh": {
"path": "zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh"
}
}
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": ["dbaeumer.vscode-eslint"],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// 9090 is the default nodecg port if you have setup a nodecg install using the install command and want to test it
"forwardPorts": [9090],
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/postCreate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ npm link
# Get nodecg so you can test the cli using this installation
[ ! -d "nodecg" ] && git clone https://github.com/nodecg/nodecg.git

cd nodecg && npm i --omit=dev
cd nodecg && npm i && npm run build
170 changes: 85 additions & 85 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,88 @@ name: CI

on: [push, pull_request]
jobs:
unit_test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2019]
node: [12, 14, 16, 18]

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}

- name: Install nodejs dependencies
run: npm ci

- name: Build TS
run: npm run build

- name: Run tests
run: npm run test

integration_test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2019]
version: ['0.1', '0.2', 'development']
node: [14, 18]

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}

- name: Install system dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt update && sudo apt-get -y install libusb-1.0-0-dev libasound2-dev libudev-dev

- name: Upgrade npm
run: npm i -g [email protected]

- name: Install node native development files
shell: bash
run: npx node-gyp install

- name: Install nodejs dependencies
run: npm ci

- name: Build
run: npm run build && npm link

- name: Run integration test
shell: bash
run: ./integration_test.sh ${{ matrix.version }}

release:
name: Release
runs-on: ubuntu-latest
# not run for dependabot because it shouldn't trigger releases and has no write tokens
# not run in forks because they are missing secrets too
# only run for the main branch
if: github.actor != 'dependabot[bot]' && startsWith(github.repository, 'codeoverflow-org') && github.ref == 'refs/heads/main'
needs:
- unit_test
- integration_test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18

- name: Install dependencies
run: npm ci

- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release
unit_test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2019]
node: [14, 16, 18]

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}

- name: Install nodejs dependencies
run: npm ci

- name: Build TS
run: npm run build

- name: Run tests
run: npm run test

integration_test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2019]
version: ["0.1", "0.2", "development"]
node: [14, 18]

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}

- name: Install system dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt update && sudo apt-get -y install libusb-1.0-0-dev libasound2-dev libudev-dev

- name: Upgrade npm
run: npm i -g [email protected]

- name: Install node native development files
shell: bash
run: npx node-gyp install

- name: Install nodejs dependencies
run: npm ci

- name: Build
run: npm run build && npm link

- name: Run integration test
shell: bash
run: ./integration_test.sh ${{ matrix.version }}

release:
name: Release
runs-on: ubuntu-latest
# not run for dependabot because it shouldn't trigger releases and has no write tokens
# not run in forks because they are missing secrets too
# only run for the main branch
if: github.actor != 'dependabot[bot]' && startsWith(github.repository, 'codeoverflow-org') && github.ref == 'refs/heads/main'
needs:
- unit_test
- integration_test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18

- name: Install dependencies
run: npm ci

- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ The following table show which versions of the CLI are compatible with which nod
| CLI versions | nodecg-io versions |
| ------------ | ------------------ |
| `0.1` | `0.1` |
| `0.3`, `0.2` | `0.2`, `0.1` |
| `0.2-0.4` | `0.2`, `0.1` |

## Developer workflow

Expand Down
9 changes: 8 additions & 1 deletion integration_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,14 @@ function clean_test_directory {
trap clean_test_directory EXIT

cd $dir
git clone https://github.com/nodecg/nodecg.git --depth 1 .

# Download NodeCG
if [ "$version" == "0.1" ] || [ "$version" == "0.2" ]; then
# if version is 0.1 or 0.2 then switch back to NodeCG v1
git clone https://github.com/nodecg/nodecg.git --depth 1 --branch legacy-1.x .
else
git clone https://github.com/nodecg/nodecg.git --depth 1 .
fi

if [ "$version" == "development" ]; then
nodecg-io install --nodecg-io-version $version --docs
Expand Down
Loading

0 comments on commit 450291e

Please sign in to comment.