Skip to content

Commit

Permalink
Add Dependabot, GitHub Actions workflows
Browse files Browse the repository at this point in the history
Added GitHub Actions workflows for building and releasing node-can-bridge. This can run specific tasks automatically to ensure builds are operational. This also includes making releases via pushing tags.

Added Dependabot to update workflow Actions to ensure they are up to date to negate any security issues and deprecation issues with older Actions.
  • Loading branch information
garrettsummerfi3ld committed Sep 28, 2024
1 parent ad9e78d commit 57cd933
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
# Dependabot updates for GitHub Actions
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: "weekly"
84 changes: 84 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Build

on:
[push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: false

defaults:
run:
shell: bash

jobs:
build-docker:
strategy:
fail-fast: false
matrix:
include:
- container: wpilib/aarch64-cross-ubuntu:bullseye-22.04
name: LinuxARM64
platform-type: linuxarm64
arch: arm64
- container: wpilib/raspbian-cross-ubuntu:bullseye-22.04
name: LinuxARM32
platform-type: linuxarm32
arch: arm32
runs-on: ubuntu-latest
name: "Build - ${{ matrix.name }}"
container: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: npm install

- name: Pretest
run: npm run pretest

# Due to the nature of the build process, we can't run the tests in the container becauase external hardware is required
# If this were to be running on a local machine, the tests would be run here
#- name: Test
# run: npm test

build-native:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
name: "Build - ${{ matrix.os }}"
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: npm install

- name: Pretest
run: npm run pretest

# Due to the nature of the build process, we can't run the tests in the container becauase external hardware is required
# If this were to be running on a local machine, the tests would be run here
#- name: Test
# run: npm test
52 changes: 52 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Create release

on:
push:
tags:
- 'v*'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: false

defaults:
run:
shell: bash

jobs:
release:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
name: "Release - ${{ matrix.os }}"

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: npm install

- name: Build
run: npm run build

- name: Create release
uses: softprops/action-gh-release@v2
with:
files: dist/*
tag_name: ${{ github.ref }}
name: ${{ github.ref }}
body: |
This is a release for version ${{ github.ref }}.
It contains the compiled files from the build process.

0 comments on commit 57cd933

Please sign in to comment.