Skip to content

Build & Test Platform Services #1455

Build & Test Platform Services

Build & Test Platform Services #1455

name: Build & Test Platform Services
run-name: Build & Test Platform Services
on:
# Allow on pull request
pull_request:
# Allow manually triggering the workflow
workflow_dispatch:
# Also schedule the workflow to run every 3 hours during day only
# ShipIt job will sync hourly around HH:21, so schedule the run with 15 minute offset
schedule:
# Run daily at 1:36AM UTC = 6:36PM PDT
# Run daily at 1:36PM UTC = 6:36AM PDT
# Run daily at 4:36PM UTC = 9:36AM PDT
# Run daily at 7:36PM UTC = 12:36PM PDT
# Run daily at 10:36PM UTC = 3:36PM PDT
- cron: '36 1,13,16,19,22 * * *'
jobs:
Platform-Services-Build:
runs-on: 32-core-ubuntu
steps:
- run: echo "Confirming hardware specications:"; sudo lscpu
- name: Clean workspace
run: sudo rm -rf ${{ github.workspace }}/*
- name: Check out repository code
uses: actions/checkout@v4
- name: Run Docker-based build for FBOSS
run: >
sudo
./fboss/oss/scripts/docker-build.py
--scratch-path
${{ github.workspace }}/build-output
--target
github_actions_fboss_platform_services
--no-docker-output
--no-system-deps
--env-var
GITHUB_ACTIONS_BUILD
- name: Package FBOSS binaries and library dependencies
run: >
sudo
./fboss/oss/scripts/package-fboss.py
--scratch-path
${{ github.workspace }}/build-output
--compress
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: fboss
path: ${{ github.workspace }}/build-output/fboss_bins.tar.zst
# Explicitly set the retention at the object level
retention-days: 14
Platform-Services-Test:
runs-on: ubuntu-latest
needs: Platform-Services-Build
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Download artifact with test binaries
uses: actions/download-artifact@v4
with:
name: fboss
- run: ls ${{ github.workspace }}
- name: Run unit tests
run: >
sudo
./fboss/oss/scripts/github_actions/docker-unittest.py
${{ github.workspace }}/fboss_bins.tar.zst