Skip to content

Commit

Permalink
GH action
Browse files Browse the repository at this point in the history
  • Loading branch information
Scavanger committed Apr 24, 2024
1 parent eb7eb4b commit e3170d4
Showing 1 changed file with 173 additions and 0 deletions.
173 changes: 173 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
name: Build Configurator
on: workflow_dispatch

jobs:
build-linux:
runs-on: unbuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
run: |
# This is the hash of the commit for the PR
# when the action is triggered by PR, empty otherwise
COMMIT_ID=${{ github.event.pull_request.head.sha }}
# This is the hash of the commit when triggered by push
# but the hash of refs/pull/<n>/merge, which is different
# from the hash of the latest commit in the PR, that's
# why we try github.event.pull_request.head.sha first
COMMIT_ID=${COMMIT_ID:-${{ github.sha }}}
BUILD_SUFFIX=ci-$(date '+%Y%m%d')-$(git rev-parse --short ${COMMIT_ID})
VERSION=$(grep version package.json | sed 's/.*"\([0-9][0-9]*.[0-9]*.[0-9]*\)".*/\1/g')
echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV
echo "BUILD_SUFFIX=${BUILD_SUFFIX}" >> $GITHUB_ENV
echo "BUILD_NAME=INAV-configurator_linux_x64_${VERSION}_${BUILD_SUFFIX}" >> $GITHUB_ENV
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: 'npm'
- name: Install dependencies
run: sudo apt update && sudo apt -y install dpkg fakeroot rpmbuild build-essential libudev-dev
- name: Install deps
uses: nick-fields/retry@v2
with:
max_attempts: 3
retry_on: error
command: npm install
timeout_minutes: 10
- name: build linux
run: npm run make
- name: Upload deb
uses: actions/upload-artifact@v3
with:
name: ${{ env.BUILD_NAME }} Linux deb
path: ./out/make/deb/linux/x64/*.deb
- name: Upload rpm
uses: actions/upload-artifact@v3
with:
name: ${{ env.BUILD_NAME }} Linux rpm
path: ./out/make/rpm/linux/x64/*.rpm
- name: Upload Linux zip
uses: actions/upload-artifact@v3
with:
name: ${{ env.BUILD_NAME }} Linux zip
path: ./out/make/zip/linux/x64/*.rpm
build-mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
run: |
# This is the hash of the commit for the PR
# when the action is triggered by PR, empty otherwise
COMMIT_ID=${{ github.event.pull_request.head.sha }}
# This is the hash of the commit when triggered by push
# but the hash of refs/pull/<n>/merge, which is different
# from the hash of the latest commit in the PR, that's
# why we try github.event.pull_request.head.sha first
COMMIT_ID=${COMMIT_ID:-${{ github.sha }}}
BUILD_SUFFIX=ci-$(date '+%Y%m%d')-$(git rev-parse --short ${COMMIT_ID})
VERSION=$(grep version package.json | sed 's/.*"\([0-9][0-9]*.[0-9]*.[0-9]*\)".*/\1/g')
echo "BUILD_SUFFIX=${BUILD_SUFFIX}" >> $GITHUB_ENV
echo "BUILD_NAME=INAV-configurator_darwin_x64_${VERSION}_${BUILD_SUFFIX}" >> $GITHUB_ENV
- uses: actions/setup-node@v4
with:
node-version: 21
check-latest: true
cache: 'npm'
- name: Install packages
run: brew install nodejs
- name: Install deps
uses: nick-fields/retry@v2
with:
max_attempts: 3
retry_on: error
command: npm install
timeout_minutes: 10
- name: build macos
run: npm run make
- name: Upload MacOS zip
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAME}} MacOSX zip
path: ./out/make/zip/darwin/x64/*.zip
- name: Upload MacOS dmg
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAME}} MacOSX dmg
path: ./out/make/dmg/darwin/x64/*.dmg
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install linux utils
run: choco install --force -y awk grep sed
- name: Setup environment
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
run: |
# This is the hash of the commit for the PR
# when the action is triggered by PR, empty otherwise
COMMIT_ID=${{ github.event.pull_request.head.sha }}
# This is the hash of the commit when triggered by push
# but the hash of refs/pull/<n>/merge, which is different
# from the hash of the latest commit in the PR, that's
# why we try github.event.pull_request.head.sha first
COMMIT_ID=${COMMIT_ID:-${{ github.sha }}}
BUILD_SUFFIX=ci-$(date '+%Y%m%d')-$(git rev-parse --short ${COMMIT_ID})
VERSION=$(grep version package.json | sed 's/.*"\([0-9][0-9]*.[0-9]*.[0-9]*\)".*/\1/g')
echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV
echo "BUILD_SUFFIX=${BUILD_SUFFIX}" >> $GITHUB_ENV
echo "BUILD_NAMEx64=INAV-configurator_win32_x64_${VERSION}_${BUILD_SUFFIX}" >> $GITHUB_ENV
echo "BUILD_NAMEis32=INAV-configurator_win32_ia32_${VERSION}_${BUILD_SUFFIX}" >> $GITHUB_ENV
shell: bash
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- uses: engineerd/[email protected]
with:
name: "Wix3.1.4"
url: "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip"
pathInArchive: "/"
- name: Install deps
uses: nick-fields/retry@v2
with:
max_attempts: 3
retry_on: error
command: npm install
timeout_minutes: 10
- name: build win32 x64
run: npm run make -- -- arch="x64"
- name: build win32 ia32
run: npm run make -- -- arch="ia32"
- name: Upload Windows x64 zip
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAMEx64}} Windows x64 zip
path: ./out/make/zip/windows/x64/*.zip
- name: Upload Windows x64 msi
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAMEx64}} Windows x64 msi
path: ./out/make/wix/windows/x64/*.msi
- name: Upload Windows ia32 zip
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAMEia32}} Windows ia32 zip
path: ./out/make/zip/windows/ia32/*.zip
- name: Upload Windows ia32 msi
uses: actions/upload-artifact@v4
with:
name: ${{env.BUILD_NAMEia32}} Windows ia32 msi
path: ./out/make/wix/windows/ia32/*.msi






0 comments on commit e3170d4

Please sign in to comment.