Skip to content

[DEVOPS-1591] Add CI configuration for building images #168

[DEVOPS-1591] Add CI configuration for building images

[DEVOPS-1591] Add CI configuration for building images #168

Workflow file for this run

name: Build kernel images
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
base-linting:
name: base-linting
runs-on: ubuntu-22.04
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Lint Dockerfile, Shell scripts, YAML
uses: github/super-linter@v4
env:
DEFAULT_BRANCH: master
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Linters to enable
VALIDATE_BASH: true
VALIDATE_BASH_EXEC: true
VALIDATE_DOCKERFILE_HADOLINT: true
VALIDATE_YAML: true
run-hooks:
name: Run pre-commit hooks
runs-on: ubuntu-22.04
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Set Up Python
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Install pre-commit
run: |
pip install --upgrade pip
pip install --upgrade pre-commit
- name: Run pre-commit hooks ✅
run: pre-commit run --all-files --hook-stage manual
build_python_kernels:
runs-on:
group: ubuntu-22.04-8cpu-public
permissions:
id-token: write
packages: write
strategy:
fail-fast: false
matrix:
version: ["3.9", "3.10"] # TODO: Add 3.11
identifier: [base, base-gpu]
env:
VERSION: ${{ matrix.version }}
TARGET: python_${VERSION//./_}
BUILD_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
GITHUB_SHA: ${{ github.sha }}
steps:
- uses: actions/checkout@v3
- name: Install Task
uses: arduino/setup-task@v1
with:
repo-token: ${{ github.token }}
- run: |
task python:base:copy-files IDENTIFIER="base" NBL_PYTHON_VERSION=${{ matrix.version }}
if [[ "${{ matrix.identifier }}" == "base-gpu" ]];
then
task python:base:copy-files IDENTIFIER=${{ matrix.identifier }} NBL_PYTHON_VERSION=${{ matrix.version }}
fi
task python:noteable:copy-files IDENTIFIER=${{ matrix.identifier }} NBL_PYTHON_VERSION=${{ matrix.version }}
- run: scripts/set-variables.sh ${{ github.ref_name }} ${{ github.event_name }} ${{ github.event.pull_request.number }}
- uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Set target
id: target
run: |
if [[ "${{ matrix.identifier }}" == "base" ]]
then
target="python_${VERSION//./_}"
else
target="python_${VERSION//./_}_gpu"
fi
echo "TARGET=${target}" >> "$GITHUB_OUTPUT"
- uses: docker/setup-buildx-action@v2
- name: Build python kernels
uses: docker/bake-action@v3
with:
push: ${{ github.event_name != 'pull_request' }}
targets: ${{ steps.target.outputs.TARGET }}
build_rlang_kernels:
runs-on: ubuntu-22.04
permissions:
id-token: write
packages: write
strategy:
matrix:
version: [4.3.0]
env:
VERSION: ${{ matrix.version }}
BUILD_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
GITHUB_SHA: ${{ github.ref }}
steps:
- uses: actions/checkout@v3
- name: Install Task
uses: arduino/setup-task@v1
with:
repo-token: ${{ github.token }}
- run: |
task r:base:copy-files NBL_LANGUAGE_VERSION=${{ matrix.version }}
- run: scripts/set-variables.sh ${{ github.ref_name }} ${{ github.event_name }} ${{ github.event.pull_request.number }}
- uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Set target
id: target
run: echo "TARGET=rlang_${VERSION//./_}" >> "$GITHUB_OUTPUT"
- uses: docker/setup-buildx-action@v2
- name: Build kernels
uses: docker/bake-action@v3
with:
push: ${{ github.event_name != 'pull_request' }}
targets: ${{ steps.target.outputs.TARGET }}