comming back to node20 #101
Workflow file for this run
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
name: Create tagged release | |
on: | |
push: | |
tags: | |
- v4.1.* | |
jobs: | |
prebuild-lib: | |
name: "Build on Node v${{ matrix.node }} ${{ matrix.os.name }} ${{ matrix.arch }}" | |
runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} | |
strategy: | |
matrix: | |
os: | |
- name: Ubuntu | |
version: 20.04 | |
- name: macOS | |
version: latest | |
- name: Windows | |
version: 2019 | |
node: ["16"] | |
arch: [x64] | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v2 | |
- name: Set up node | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node }} | |
architecture: ${{ matrix.arch }} | |
- name: "Install npm@^8 to get a more up to date bundled node-gyp" | |
run: npm install --global [email protected] | |
- name: "Add Windows apps" | |
if: ${{ matrix.os.name == 'Windows' }} | |
run: | | |
choco install cmake -y | |
choco upgrade cmake | |
- name: "Setup-msbuild" | |
if: ${{ matrix.os.name == 'Windows' }} | |
uses: microsoft/[email protected] | |
- name: "Add Linux apps" | |
if: ${{ matrix.os.name == 'Ubuntu' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev | |
sudo apt-get install libxvidcore-dev libx264-dev | |
sudo apt-get install cmake | |
- name: "Add macos apps" | |
if: ${{ matrix.os.name == 'macos' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: "Install python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: Dependency install | |
run: npm ci --unsafe-perm | |
- name: Create opencvlib | |
run: npm run create_opencvlib | |
- name: "Send Windows release to storage" | |
if: ${{ matrix.os.name == 'Windows' }} | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "osOpencvWorlds/win32/*.tgz" | |
allowUpdates: true | |
- name: "Send macos release to storage" | |
if: ${{ matrix.os.name == 'macos' }} | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "osOpencvWorlds/darwin/*.tgz" | |
allowUpdates: true | |
- name: "Send Ubuntu release to storage" | |
if: ${{ matrix.os.name == 'Ubuntu' }} | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "osOpencvWorlds/linux/*.tgz" | |
allowUpdates: true | |
prebuild-node: | |
needs: | |
- prebuild-lib | |
name: "Build on Node v${{ matrix.node }} ${{ matrix.os.name }} ${{ matrix.arch }}" | |
runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} | |
strategy: | |
matrix: | |
os: | |
- name: Ubuntu | |
version: 20.04 | |
- name: macOS | |
version: latest | |
- name: Windows | |
version: 2019 | |
node: ["15", "16", "18", "19.0.0", "20.0.0"] | |
arch: [x64] | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
architecture: ${{ matrix.arch }} | |
- name: "Install npm@^8 to get a more up to date bundled node-gyp" | |
run: npm install --global [email protected] | |
- name: "Install Linux dependencies" | |
if: ${{ matrix.os.name == 'Ubuntu' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev | |
sudo apt-get install libxvidcore-dev libx264-dev | |
sudo apt-get install cmake | |
sudo apt-get install -y build-essential | |
- name: "Install python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: "Install Mac dependencies" | |
if: ${{ matrix.os.name == 'macos' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Install | |
run: npm ci --unsafe-perm | |
- name: Prebuild | |
shell: bash | |
run: npm run create_opencvnode_prebuild | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "prebuilds/*.tar.gz" | |
allowUpdates: true | |
prebuild-electron-node14: | |
needs: | |
- prebuild-lib | |
name: "Build on Node v${{ matrix.node }} ${{ matrix.os.name }} ${{ matrix.arch }} electron ${{ matrix.electron }}" | |
runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} | |
strategy: | |
matrix: | |
os: | |
- name: Ubuntu | |
version: 20.04 | |
- name: macOS | |
version: latest | |
- name: Windows | |
version: 2019 | |
node: ["14"] | |
arch: [x64] | |
runtime: [electron] | |
electron: | |
["8.0.0", "9.0.0", "10.0.0", "11.0.0", "12.0.0", "13.0.0", "14.0.0"] | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
architecture: ${{ matrix.arch }} | |
- name: "Install npm@^8 to get a more up to date bundled node-gyp" | |
run: npm install --global [email protected] | |
- name: "Install Linux dependencies" | |
if: ${{ matrix.os.name == 'Ubuntu' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libudev-dev | |
- name: "Install python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: "Install Mac dependencies" | |
if: ${{ matrix.os.name == 'macos' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Install | |
run: npm ci --unsafe-perm | |
- name: Prebuild | |
shell: bash | |
run: npm run create_opencvnode_prebuild -- -t ${{matrix.electron}} -r ${{matrix.runtime}} | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "prebuilds/*.tar.gz" | |
allowUpdates: true | |
prebuild-electron-node16: | |
needs: | |
- prebuild-lib | |
name: "Build on Node v${{ matrix.node }} ${{ matrix.os.name }} ${{ matrix.arch }} electron ${{ matrix.electron }}" | |
runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} | |
strategy: | |
matrix: | |
os: | |
- name: Ubuntu | |
version: 20.04 | |
- name: macOS | |
version: latest | |
- name: Windows | |
version: 2019 | |
node: ["16"] | |
arch: [x64] | |
runtime: [ electron ] | |
electron: [ "15.0.0", "16.0.0", "17.0.0", "18.0.0", "19.0.0", "22.0.0", "23.0.0", "24.0.0", "25.0.0" ] | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
architecture: ${{ matrix.arch }} | |
- name: "Install npm@^8 to get a more up to date bundled node-gyp" | |
run: npm install --global [email protected] | |
- name: "Install Linux dependencies" | |
if: ${{ matrix.os.name == 'Ubuntu' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libudev-dev | |
- name: "Install python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: "Install Mac dependencies" | |
if: ${{ matrix.os.name == 'macos' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Install | |
run: npm ci --unsafe-perm | |
- name: Prebuild | |
shell: bash | |
run: npm run create_opencvnode_prebuild -- -t ${{matrix.electron}} -r ${{matrix.runtime}} | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "prebuilds/*.tar.gz" | |
allowUpdates: true | |
deploy: | |
needs: | |
- prebuild-node | |
- prebuild-electron-node14 | |
- prebuild-electron-node16 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 14 | |
registry-url: 'https://registry.npmjs.org' | |
- name: 'Install npm@^8' | |
run: npm install --global [email protected] | |
- name: Install | |
run: npm ci --unsafe-perm | |
- name: Publish tagged release to npm | |
run: | | |
npm i clean-package -g | |
npm whoami | |
npm run publish_package | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |