Skip to content

Commit

Permalink
Add ci
Browse files Browse the repository at this point in the history
  • Loading branch information
Samir-Rashid committed Sep 26, 2024
1 parent 646cef9 commit 41c39e6
Show file tree
Hide file tree
Showing 7 changed files with 580 additions and 0 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Licensed under the Apache License, Version 2.0 or the MIT License.
# SPDX-License-Identifier: Apache-2.0 OR MIT
# Copyright Tock Contributors 2023.

# This workflow calculates size diffs for the compiled binary of each supported tock board

name: Benchmarks

# Controls when the action will run. Triggers the workflow on pull request
# events but only for the master branch
on:
pull_request:
branches: master

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
# If you add additional jobs, remember to add them to bors.toml
permissions:
contents: read

jobs:
benchmarks:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install --user cxxfilt
sudo apt install llvm
- name: size report
run: |
./tools/github_actions_size_changes.sh
88 changes: 88 additions & 0 deletions .github/workflows/ci-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Licensed under the Apache License, Version 2.0 or the MIT License.
# SPDX-License-Identifier: Apache-2.0 OR MIT
# Copyright Tock Contributors 2024.

name: tock-nightly-ci

on:
schedule:
- cron: "0 0 * * *"

env:
TERM: xterm # Makes tput work in actions output

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
# If you add additional jobs, remember to add them to bors.toml
permissions:
contents: read
issues: write

jobs:
ci-build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3

- name: ci-job-syntax
run: make ci-job-syntax
- name: ci-job-compilation
run: make ci-job-compilation
- name: ci-job-debug-support-targets
run: make ci-job-debug-support-targets

- name: ci-job-collect-artifacts
run: make ci-job-collect-artifacts
- name: upload-build-artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: tools/ci-artifacts

ci-tests:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}

steps:
- name: Update package repositories
run: |
sudo apt update
if: matrix.os == 'ubuntu-latest'
- name: Install dependencies for ubuntu-latest
run: |
sudo apt install libudev-dev libzmq3-dev
if: matrix.os == 'ubuntu-latest'
- name: Install dependencies for macos-latest
run: |
brew install zeromq
if: matrix.os == 'macos-latest'
- uses: actions/checkout@v3
- name: ci-job-libraries
run: make ci-job-libraries
- name: ci-job-archs
run: make ci-job-archs
- name: ci-job-kernel
run: make ci-job-kernel
- name: ci-job-chips
run: make ci-job-chips
- name: ci-job-tools
run: make ci-job-tools
- name: Create Issue on Failed workflow
if: failure()
uses: dacbd/create-issue-action@main
with:
token: ${{ github.token }}
title: Nightly CI failed
body: |
### Context
[Failed Run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
[Codebase](https://github.com/${{ github.repository }}/tree/${{ github.sha }})
Workflow name - `${{ github.workflow }}`
Job - `${{ github.job }}`
status - `${{ job.status }}`
assignees: tock/core-wg
126 changes: 126 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# Licensed under the Apache License, Version 2.0 or the MIT License.
# SPDX-License-Identifier: Apache-2.0 OR MIT
# Copyright Tock Contributors 2023.

# This workflow contains all tock-ci, separated into jobs

name: tock-ci
env:
TERM: xterm # Makes tput work in actions output

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push: # Run CI for all branches except GitHub merge queue tmp branches
branches-ignore:
- "gh-readonly-queue/**"
pull_request: # Run CI for PRs on any branch
merge_group: # Run CI for the GitHub merge queue

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
# If you add additional jobs, remember to add them to bors.toml
permissions:
contents: read

jobs:
ci-format:
strategy:
matrix:
os: [ubuntu-latest]
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: ci-job-format
run: make ci-job-format
- name: ci-job-markdown-toc
run: make ci-job-markdown-toc
- name: ci-job-readme-check
run: make ci-job-readme-check

ci-clippy:
strategy:
matrix:
os: [ubuntu-latest]
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- name: ci-job-clippy
run: make ci-job-clippy

ci-build:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- name: ci-job-syntax
run: make ci-job-syntax
- name: ci-job-compilation
run: make ci-job-compilation
- name: ci-job-debug-support-targets
run: make ci-job-debug-support-targets
- name: ci-job-collect-artifacts
run: make ci-job-collect-artifacts
- name: upload-build-artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: tools/ci-artifacts

ci-tests:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}

steps:
- name: Update package repositories
run: |
sudo apt update
if: matrix.os == 'ubuntu-latest'
- name: Install dependencies for ubuntu-latest
run: |
sudo apt install libudev-dev libzmq3-dev
if: matrix.os == 'ubuntu-latest'
- uses: actions/checkout@v3
- name: ci-job-libraries
run: make ci-job-libraries
- name: ci-job-archs
run: make ci-job-archs
- name: ci-job-kernel
run: make ci-job-kernel
- name: ci-job-capsules
run: make ci-job-capsules
- name: ci-job-chips
run: make ci-job-chips
- name: ci-job-tools
run: make ci-job-tools
- name: ci-job-cargo-test-build
run: make ci-job-cargo-test-build

ci-qemu:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}

steps:
- name: Update package repositories
run: |
sudo apt update
- name: Install dependencies
continue-on-error: true
run: |
sudo apt install meson
- uses: actions/checkout@v3
- name: ci-job-qemu
run: make ci-job-qemu
21 changes: 21 additions & 0 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Licensed under the Apache License, Version 2.0 or the MIT License.
# SPDX-License-Identifier: Apache-2.0 OR MIT
# Copyright Tock Contributors 2023.

name: "Pull Request Labeler"
on:
- pull_request_target

permissions:
contents: read

jobs:
triage:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
Loading

0 comments on commit 41c39e6

Please sign in to comment.