Skip to content

Commit

Permalink
Using Dockerfile as test environment
Browse files Browse the repository at this point in the history
  • Loading branch information
DiogenesAnalytics committed Mar 5, 2024
1 parent 8c196e7 commit 8e3aedb
Showing 1 changed file with 57 additions and 12 deletions.
69 changes: 57 additions & 12 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,67 @@
name: tests

on: [push, pull_request]
on:
push:
branches: [ "master" ]
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
pull_request:
branches: [ "master" ]

env:
# Use docker.io for Docker Hub if empty
REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
IMAGE_TAG: master

jobs:
pytest:
build-and-test:

runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout repository
uses: actions/checkout@v3

# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0

# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.11'
# Try pulling the Docker image first
- name: Pull Docker image
id: pull-image
run: |
set -e
if ! docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}; then
echo "::set-output name=pull-failed::true"
fi
- name: Install dependencies
run: pip install -r tests/requirements.txt
# Build Docker image if pull fails
- name: Build Docker image if pull fails
if: steps.pull-image.outputs.pull-failed
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} .
- name: Run pytest
run: pytest
# Run pytest tests within the Docker container
- name: Run pytest in Docker container
run: |
docker run ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} pytest

0 comments on commit 8e3aedb

Please sign in to comment.