Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Squashed workflows #4

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Squashed workflows
  • Loading branch information
kaidokert committed May 22, 2024
commit 49a09fd6a3a92976badcf1039dd52d4e3435dd3e
19 changes: 19 additions & 0 deletions .github/actions/pre_commit/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: pre-commit
description: Runs pre-commit
inputs:
base_ref:
description: "Ref to run from"
required: true
runs:
using: "composite"
steps:
- run: python -m pip install pre-commit
shell: bash
- run: python -m pip freeze --local
shell: bash
- uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: pre-commit-3|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
- run: pre-commit run --show-diff-on-failure --color=always --all-files
shell: bash
106 changes: 106 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: Docker Build

on:
pull_request:
types: [opened, reopened, synchronize]
branches:
- dev_workflows
push:
branches:
- dev_workflows
workflow_dispatch:

jobs:
docker-build-image:
runs-on: ubuntu-latest

env:
docker_tag: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref_name }}

steps:
- uses: actions/checkout@v4
#- name: Dump context
# uses: crazy-max/ghaction-dump-context@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull just in case
run: docker pull ghcr.io/${{ github.repository }}/linux || true
- name: Build containers using docker-compose
run: docker-compose build
- name: Re-tag
run: docker tag ghcr.io/${{ github.repository }}/linux:latest ghcr.io/${{ github.repository }}/linux:${{ env.docker_tag }}
- name: Work
run: docker push ghcr.io/${{ github.repository }}/linux:${{ env.docker_tag }}
outputs:
docker_tag: ghcr.io/${{ github.repository }}/linux:${{ env.docker_tag }}

build:
needs: [docker-build-image]
runs-on: [self-hosted, chrobalt-linux-runner]
container: ${{ needs.docker-build-image.outputs.docker_tag }}
env:
DEPOT_TOOLS_UPDATE: 0
DEPOT_TOOLS_REPORT_BUILD: 0
DEPOT_TOOLS_COLLECT_METRICS: 0
DEPOT_TOOLS_METRICS: 0
SCCACHE: 1
SCCACHE_GCS_BUCKET: cobalt-actions-sccache-linux
SCCACHE_GCS_SERVICE_ACCOUNT: [email protected]
SCCACHE_GCS_RW_MODE: READ_WRITE
SCCACHE_IDLE_TIMEOUT: 0 # prevent sccache server from shutting down after long idle.

steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: src
# - name: Dump context
# uses: crazy-max/ghaction-dump-context@v2
- name: Get depot tools
run: git clone -b dev https://github.com/kaidokert/depot_tools.git
- name: Add directory to PATH
run: echo "$GITHUB_WORKSPACE/depot_tools" >> $GITHUB_PATH
- name: Generate gclient file
run: gclient config --name=src https://github.com/${{ github.repository }}
- name: Gclient sync
run: gclient sync -v --shallow --no-history -r ${{ github.sha }}
- name: DF
run: df -h
- name: Du
run: du -ht 500M
- name: sccache check
run: sccache -s
- name: gn gen
run: |
cd src
gn gen out/Default --args='cc_wrapper="sccache"'
- name: ninja base_unittests
run: |
cd src
ninja -C out/Default base_unittests
- name: ninja sql_unittests
run: |
cd src
ninja -C out/Default sql_unittests
- name: ninja net_unittests
run: |
cd src
ninja -C out/Default net_unittests
- name: ninja url_unittests
run: |
cd src
ninja -C out/Default url_unittests
- name: ninja ipc_tests
run: |
cd src
ninja -C out/Default ipc_tests
- name: sccache check
run: sccache -s
- name: Any speed
run: echo Any speed
11 changes: 11 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: '3.8'
services:
app:
build:
context: docker/linux
cache_from:
- ghcr.io/youtube/chrobalt_sandbox/linux:latest
image: ghcr.io/youtube/chrobalt_sandbox/linux:latest
platform: linux/amd64
environment:
- DEPOT_TOOLS_UPDATE=0
18 changes: 18 additions & 0 deletions docker/linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Use the official Ubuntu image as the base
FROM debian:12

# Install any necessary dependencies
RUN apt-get update && apt-get install -y \
curl python3-dev git \
xz-utils \
pkgconf \
libglib2.0-0 \
libnss3 \
&& rm -rf /var/lib/apt/lists/*

ADD files/sccache /usr/local/bin

ENV SCCACHE_GCS_BUCKET=githubactions-chrome-sccache
ENV SCCACHE_GCS_RW_MODE=READ_WRITE
ENV SCCACHE_GCS_KEY_PATH=/root/key.json
ENV SCCACHE_GCS_SERVICE_ACCOUNT=github-actions-bucket-access@cobalt-demo-330821.iam.gserviceaccount.com
Binary file added docker/linux/files/sccache
Binary file not shown.