Skip to content

Add extra convenience tasks for justfile #1699

Add extra convenience tasks for justfile

Add extra convenience tasks for justfile #1699

Workflow file for this run

name: Run tests
on:
push:
paths-ignore:
- "**.md"
- ".gitignore"
# make our tests run when we have external PRs
pull_request:
paths-ignore:
- "**.md"
- ".gitignore"
defaults:
run:
working-directory: ./
jobs:
run_tests:
runs-on: ubuntu-latest
permissions:
pull-requests: write # this allows to show table and charts in PRs
services:
mariadb:
image: mariadb:10.11
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: just-for-github-actions
MYSQL_DATABASE: greencheck
# rabbitmq
rabbitmq:
image: rabbitmq:3.8
env:
RABBITMQ_USERNAME: "guest"
RABBITMQ_PASSWORD: "guest"
ports:
- 5672:5672
options: '--hostname "rmq" --health-cmd "rabbitmqctl status" --health-interval 10s --health-timeout 10s --health-retries 3 --health-start-period 60s'
strategy:
matrix:
python-version: [3.11, 3.12]
steps:
- name: Eco CI Energy Estimation - Initialize
uses: green-coding-solutions/[email protected]
with:
task: start-measurement
company-uuid: "7f1d34f0-7666-4378-8d8f-d37cced7ccb0"
project-uuid: "a9946d61-149b-4757-99e5-aaac24acf289"
machine-uuid: "90a9ec92-0884-43bc-8b98-9a7885864307"
continue-on-error: true
- uses: actions/checkout@v4
- name: Eco CI Energy Estimation - Get Measurement
uses: green-coding-solutions/[email protected]
with:
task: get-measurement
label: "checkout"
continue-on-error: true
- name: Use Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Eco CI Energy Estimation - Get Measurement
uses: green-coding-solutions/[email protected]
with:
task: get-measurement
label: "setup-python"
continue-on-error: true
- name: Install tooling for managing dependencies
run: |
python -m pip install --upgrade uv wheel
- name: Eco CI Energy Estimation - Get Measurement
uses: green-coding-solutions/[email protected]
with:
task: get-measurement
label: "pip install uv wheel"
continue-on-error: true
# - name: Set up a cache-key for installations of dependencies, in .venv
# id: cache-venv
# uses: actions/cache@v4
# with:
# path: ./.venv
# key: ${{ runner.os }}-venv-${{ hashFiles('**/Pipfile.lock') }}
- name: Install dependencies
# skipping this check to see if we have a collision between cache keys
# when deploying versus running tests
# if: steps.cache-pipenv.outputs.cache-hit != 'true'
run: |
uv venv
uv sync
- name: Eco CI Energy Estimation - Get Measurement
uses: green-coding-solutions/[email protected]
with:
task: get-measurement
label: "pip install requirements"
continue-on-error: true
- name: Run tests
run: |
source .venv/bin/activate
.venv/bin/dotenv -f .env.test run -- pytest
env:
DOMAIN_SNAPSHOT_BUCKET: ${{ secrets.TESTING_DOMAIN_SNAPSHOT_BUCKET }}
DATABASE_URL_READ_ONLY: ${{ secrets.TESTING_DATABASE_URL_READ_ONLY }}
OBJECT_STORAGE_ACCESS_KEY_ID: ${{ secrets.TESTING_OBJECT_STORAGE_ACCESS_KEY_ID }}
OBJECT_STORAGE_SECRET_ACCESS_KEY: ${{ secrets.TESTING_OBJECT_STORAGE_SECRET_ACCESS_KEY }}
OBJECT_STORAGE_ENDPOINT: ${{ secrets.TESTING_OBJECT_STORAGE_ENDPOINT }}
OBJECT_STORAGE_REGION: ${{ secrets.TESTING_OBJECT_STORAGE_REGION }}
OBJECT_STORAGE_BUCKET_NAME: ${{ secrets.TESTING_OBJECT_STORAGE_BUCKET_NAME }}
AMAZON_PROVIDER_ID: ${{ secrets.AMAZON_PROVIDER_ID }}
AMAZON_REMOTE_API_ENDPOINT: ${{ secrets.AMAZON_REMOTE_API_ENDPOINT }}
MICROSOFT_PROVIDER_ID: ${{ secrets.MICROSOFT_PROVIDER_ID }}
MICROSOFT_LOCAL_FILE_DIRECTORY: ${{ secrets.MICROSOFT_LOCAL_FILE_DIRECTORY }}
EQUINIX_PROVIDER_ID: ${{ secrets.EQUINIX_PROVIDER_ID }}
EQUINIX_REMOTE_API_ENDPOINT: ${{ secrets.EQUINIX_REMOTE_API_ENDPOINT }}
AWS_SHARED_CREDENTIALS_FILE: ${{ secrets.AWS_SHARED_CREDENTIALS_FILE }}
AWS_CONFIG_FILE: ${{ secrets.AWS_CONFIG_FILE }}
- name: Eco CI Energy Estimation - Get Measurement
uses: green-coding-solutions/[email protected]
with:
task: get-measurement
label: "pytest"
continue-on-error: true
- name: Eco CI Energy Estimation - End Measurement
uses: green-coding-solutions/[email protected]
with:
task: display-results
pr-comment: true
send-data: true
continue-on-error: true