mirror of
https://github.com/pret/agbcc.git
synced 2026-03-21 17:44:20 -05:00
88 lines
2.2 KiB
YAML
88 lines
2.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
|
|
# Note, Github Actions is dumb and only steps - not jobs - can access env.
|
|
# Therefore, if you update this, make sure to update the deploy job below.
|
|
env:
|
|
IS_DEPLOY: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
|
|
jobs:
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@main
|
|
|
|
- name: Install deps
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi
|
|
|
|
- name: Compile
|
|
run: sh build.sh
|
|
|
|
# No point in running the following steps if we are not deploying
|
|
# See https://github.com/actions/runner/issues/1395 for why fromJSON() is needed
|
|
- name: Install to temp dir
|
|
if: fromJSON(env.IS_DEPLOY)
|
|
shell: bash
|
|
run: |
|
|
mkdir TEMPDIR
|
|
sh install.sh TEMPDIR
|
|
|
|
- name: Create release archive
|
|
if: fromJSON(env.IS_DEPLOY)
|
|
shell: bash
|
|
run: tar -C TEMPDIR/tools/agbcc -czf agbcc.tar.gz bin include lib
|
|
|
|
- name: Upload archive
|
|
uses: actions/upload-artifact@main
|
|
if: fromJSON(env.IS_DEPLOY)
|
|
with:
|
|
name: agbcc.tar.gz
|
|
path: agbcc.tar.gz
|
|
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@main
|
|
|
|
- name: Install deps
|
|
run: |
|
|
brew install arm-none-eabi-binutils
|
|
brew install arm-none-eabi-gcc
|
|
|
|
- name: Compile
|
|
run: sh build.sh
|
|
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
needs: build-linux
|
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
|
|
- name: Download archive
|
|
uses: actions/download-artifact@main
|
|
with:
|
|
name: agbcc.tar.gz
|
|
|
|
- name: Update release
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
allowUpdates: true
|
|
artifactErrorsFailBuild: true
|
|
artifacts: agbcc.tar.gz
|
|
commit: ${{ github.sha }}
|
|
makeLatest: true
|
|
tag: release
|
|
token: ${{ secrets.GITHUB_TOKEN }} # Automatically created by the workflow with a lifetime of one hour
|