Skip to content

Merge pull request #90 from iht/docker_build #126

Merge pull request #90 from iht/docker_build

Merge pull request #90 from iht/docker_build #126

Workflow file for this run

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: 'Build and validation'
on:
pull_request:
push:
permissions:
contents: read
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: "Terraform:\n - 'terraform/**' \n"
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
- name: Terraform Init
working-directory: terraform
run: |
ls -d */ | while read d
do
echo "Running tf init in directory: $d"
cd $d && terraform init && cd ..
done
- name: Terraform Format
working-directory: terraform
run: |
ls -d */ | while read d
do
echo "Running tf format check in directory: $d"
cd $d && terraform fmt -check && cd ..
done
- name: Terraform Validate
working-directory: terraform
run: |
ls -d */ | while read d
do
echo "Running tf validate in directory: $d"
cd $d && terraform validate && cd ..
done
java-build:
name: 'Java pipelines build'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: "Pipelines:\n - 'pipelines/**' \n"
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2
with:
build-scan-publish: true
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-use-agree: "yes"
- name: Build with Gradle Wrapper
working-directory: pipelines
run: |
for pipeline_dir in */
do
echo "Checking pipelines/$pipeline_dir"
if [ -f "$pipeline_dir/gradlew" ]
then
echo Gradle build found
cd $pipeline_dir
./gradlew build
cd ..
else
echo Ignoring, no gradlew found
fi
done
pylint-google-style:
name: 'Python PyLint Google style'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: "Pipelines:\n - 'pipelines/**' \n"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install pylint
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Run pylint
working-directory: pipelines
run: |
for pipeline_dir in */
do
echo "Checking pipelines/$pipeline_dir"
if [ -f "$pipeline_dir/setup.py" ]
then
echo
echo -------------------------------------
echo Checking format $pipeline_dir
echo -------------------------------------
echo
cd $pipeline_dir
pylint --rcfile ../pylintrc .
cd ..
else
echo Ignoring, no Python pipeline found
fi
done
python-build:
name: 'Python pipelines build'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: "Pipelines:\n - 'pipelines/**' \n"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install pipenv
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
- name: Python builds
working-directory: pipelines
run: |
export PIPENV_VENV_IN_PROJECT=1
for pipeline_dir in */
do
echo "Checking pipelines/$pipeline_dir"
if [ -f "$pipeline_dir/setup.py" ]
then
echo
echo -------------------------------------
echo Building $pipeline_dir
echo -------------------------------------
echo
cd $pipeline_dir
pipenv install
for req_txt in requirements*.txt
do
echo ----- Installing dependencies in $req_txt -----
pipenv install -r $req_txt
done
echo ----- Building package -----
pipenv run python setup.py sdist
cd ..
else
echo Ignoring, no Python pipeline found
fi
done
docker-build:
name: Docker images build
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Docker builds
working-directory: pipelines
run: |
for pipeline_dir in */
do
echo "Checking pipelines/$pipeline_dir"
if [ -f "$pipeline_dir/Dockerfile" ]
then
echo
echo -------------------------------------
echo Building Docker $pipeline_dir
echo -------------------------------------
echo
cd $pipeline_dir
mkdir gemma_2B && touch gemma_2B/DUMMY
docker build -t github-actions .
cd ..
else
echo Ignoring, no Dockerfile found
fi
done