Skip to content
name: Validate and organize repo, build and publish Docker images
on:
push:
branches:
- main
paths:
- 'config.toml'
jobs:
validate-and-organize:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token.
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Pip install packages
run: |
python -m pip install -U pip
pip install --no-cache-dir domino-py[cli]
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: pip list
run: pip list | grep domino
- name: Run organize and build images
run: |
domino piece organize --build-images --source-url=https://github.com/${{github.repository}}
- name: Install Tests Dependencies
run: pip install -r requirements-tests.txt
- name: Run tests over built images
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
DOMINO_TESTS_ENVIRONMENT: github
run: |
pytest -s -v --cov=pieces --cov-report=xml --cov-report=term-missing
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Publish images
env:
GHCR_USERNAME: ${{ github.actor }}
run: domino piece publish-images --registry-token ${{ secrets.GITHUB_TOKEN }}
- name: Commit files
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
GIT_STATUS=$(git status -s)
[[ ! -z "$GIT_STATUS" ]] && git add .domino/* && git commit -m "auto-organize" -a || echo "No changes to commit"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
- name: Create Release
env:
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: domino piece release