Bootc testing framework run playbook and install bootc binary #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Instructlab Images Testing Framework | |
on: | |
schedule: # schedule the job to run every day at midnight | |
- cron: '0 * * * *' | |
# For testing purposes, will remove | |
pull_request: | |
branches: | |
- main | |
paths: | |
- .github/workflows/instructlab_testing_framework.yaml | |
workflow_dispatch: | |
env: | |
TF_VAR_aws_region: "eu-west-2" | |
TF_VAR_aws_ami_owners: '["125523088429"]' | |
TF_VAR_aws_ami_name: '["Fedora-Cloud-Base-*"]' | |
TF_VAR_aws_volume_size: 25 | |
# TF_VAR_aws_volume_size: 128 | |
TF_VAR_aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
TF_VAR_aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
concurrency: | |
group: ${{ github.workflow }} | |
cancel-in-progress: false | |
jobs: | |
integration-tests: | |
if: github.repository == 'containers/ai-lab-recipes' | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- image_name: instructlab-amd | |
aws_image_type: t2.micro | |
aws_ami_architecture: x86_64 | |
# - image_name: instructlab-nvidia | |
# aws_image_type: t2.micro | |
# aws_ami_architecture: x86_64 | |
# - image_name: instructlab-amd | |
# aws_image_type: g5.8xlarge | |
# aws_ami_architecture: x86_64 | |
# - image_name: instructlab-nvidia | |
# aws_image_type: g5.8xlarge | |
# aws_ami_architecture: x86_64 | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
path: main | |
- name: Checkout terraform module | |
id: checkout-module | |
uses: actions/[email protected] | |
with: | |
repository: containers/terraform-test-environment-module | |
path: terraform-test-environment-module | |
ref: 'main' | |
- name: Setup Terraform | |
uses: hashicorp/[email protected] | |
with: | |
terraform_version: "1.7.5" | |
terraform_wrapper: false | |
- name: Init | |
run: terraform init | |
working-directory: terraform-test-environment-module | |
- name: Bootstrap | |
id: up | |
run: terraform apply -auto-approve -lock=false | |
working-directory: terraform-test-environment-module | |
env: | |
TF_VAR_aws_instance_type: ${{ matrix.aws_image_type }} | |
TF_VAR_aws_ami_architecture: ${{ matrix.aws_ami_architecture }} | |
- name: Set up Python | |
uses: actions/[email protected] | |
with: | |
python-version: '3.11' | |
- name: Ansible Collections | |
run: ansible-galaxy install -r ./provision/requirements.yml | |
working-directory: ./main/training/instructlab | |
# This provision will actually run the instructlab images, might need to run this differently than standard container | |
# Commenting out the run statement in the playbook for testing | |
- name: Provision | |
run: | | |
ansible-playbook ./main/training/instructlab/provision/playbook.yml \ | |
-i terraform-test-environment-module/hosts.ini \ | |
--private-key=terraform-test-environment-module/${{ steps.terraform-output.outputs.pem_filename }} | |
env: | |
ANSIBLE_HOST_KEY_CHECKING: false | |
image_name: ${{ matrix.image_name }} | |
- name: Terraform Output | |
id: terraform-output | |
run: | | |
echo "id=$(terraform output id | xargs)" >> $GITHUB_OUTPUT | |
echo "url=$(terraform output host | xargs)" >> $GITHUB_OUTPUT | |
echo "pem_filename=$(terraform output pem_filename | xargs)" >> $GITHUB_OUTPUT | |
working-directory: terraform-test-environment-module | |
# # THIS IS COMMING IN https://github.com/instructlab/instructlab/pull/1016 | |
# - name: Run Integration Tests | |
# working-directory: ./main/training/instructlab | |
- name: Destroy Test Environment | |
id: down | |
if: always() | |
run: terraform destroy -auto-approve -lock=false | |
working-directory: terraform-test-environment-module | |
env: | |
TF_VAR_aws_instance_type: ${{ matrix.aws_image_type }} | |
TF_VAR_aws_ami_architecture: ${{ matrix.aws_ami_architecture }} | |
- name: Publish Job Results to Slack | |
id: slack | |
if: always() | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "${{ github.workflow }} workflow status: ${{ job.status }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |