Skip to content

- updates ci:test

- updates ci:test #217

Workflow file for this run

name: Test
on:
push:
branches:
- develop
- master
- staging
- release/*
- feature/*
- bugfix/*
- hotfix/*
pull_request:
branches: [develop, master]
types: [synchronize, opened, reopened, ready_for_review]
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
setup:
# if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
timeout-minutes: 3
defaults:
run:
shell: bash
outputs:
checksum: ${{ steps.checksum.outputs.checksum }}
version: ${{ steps.meta.outputs.version }}
run_tests: ${{ steps.changes.outputs.run_tests }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- id: changes
name: Check for file changes
uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
with:
base: ${{ github.ref }}
token: ${{ github.token }}
filters: .github/file-filters.yml
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
- name: Prepare Build Args
id: build_args
uses: ./.github/actions/build_args
with:
debug: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v6
id: build_push
with:
context: .
tags: ${{ steps.meta.outputs.tags }}
target: ${{ inputs.target }}
file: ./docker/Dockerfile
platforms: linux/amd64
push: true
build-args: |
BUILD_DATE=${{ steps.build_args.outputs.build_date }}
CHECKSUM=${{ steps.build_args.outputs.checksum }}
VERSION=${{ steps.meta.outputs.version }}
SOURCE_COMMIT=${{ steps.build_args.outputs.source_commit }}
GITHUB_SERVER_URL=${{ github.server_url }}
GITHUB_REPOSITORY=${{ github.repository }}
- name: Push Blob to Registry
shell: bash
run: |
echo ${{ steps.build_push.outputs }}
# outputs: type=registry
# cache-from: "type=registry,ref=${{inputs.image}}-buildcache,mode=max"
# cache-to: "type=registry,ref=${{inputs.image}}-buildcache,mode=max"
# provenance: true
# sbom: true
# load: true#
# test:
# name: Run Test Suite
# needs: [setup,build]
# if: needs.setup.outputs.run_tests == 'true' || contains(github.event.head_commit.message, 'ci:test')
## && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name)
# runs-on: ubuntu-latest
# services:
# redis:
# image: redis
# db:
# image: postgres:14
# env:
# POSTGRES_DATABASE: dedupe
# POSTGRES_PASSWORD: postgres
# POSTGRES_USERNAME: postgres
# ports:
# - 5432:5432
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# env:
# DOCKER_DEFAULT_PLATFORM: linux/amd64
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Image meta
# id: info
# uses: ./.github/actions/image_meta
# with:
# checksum: "-"
# image: ${{needs.build.outputs.image}}
# username: ${{ inputs.username }}
# password: ${{ inputs.password }}
# debug: true
# - name: Dump 'Build' outputs
# run: echo "${{ toJSON(needs.build.outputs) }}"
# - name: Dump 'Setup' outputs
# run: echo "${{ toJSON(needs.setup.outputs) }}"
# - name: Dump Image meta
# run: echo "${{ toJSON(steps.info.outputs) }}"
# - name: Run tests
# run: |
# docker run --rm \
# -e DATABASE_URL=postgres://postgres:postgres@localhost:5432/dedupe \
# -e SECRET_KEY=secret_key \
# -e CACHE_URL=redis://redis:6379/0 \
# -e CELERY_BROKER_URL=redis://redis:6379/0 \
# --network host \
# -v $PWD:/code/app \
# -w /code/app \
# -t ${{needs.build.outputs.image}} \
# pytest tests -v --create-db -v --maxfail=10
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v4
# with:
# env_vars: OS,PYTHON
# fail_ci_if_error: true
# files: coverage.xml
# token: ${{ secrets.CODECOV_TOKEN }}
# verbose: false
# name: codecov-${{env.GITHUB_REF_NAME}}
#
#
# trivy:
# name: Check Image with Trivy
# runs-on: ubuntu-latest
# needs: [build]
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: DockerHub login
# uses: docker/login-action@v1
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Run Trivy vulnerability scanner
# uses: aquasecurity/trivy-action@master
# with:
# image-ref: ${{needs.build.outputs.image}}
# format: 'sarif'
# output: 'trivy-results.sarif'
## format: 'table'
## exit-code: '0'
## ignore-unfixed: true
## vuln-type: 'os,library'
## severity: 'CRITICAL,HIGH'
# - name: Upload Trivy scan results to GitHub Security tab
# uses: github/codeql-action/upload-sarif@v2
# with:
# sarif_file: 'trivy-results.sarif'
#
#
# release:
## if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
# name: Build and Push Distribution
# needs: [setup, test]
# runs-on: ubuntu-latest
# defaults:
# run:
# shell: bash
# outputs:
# image: ${{steps.image_name.outputs.name}}
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Define target image name
# id: image_name
# run: |
# branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
# ver="${branch/\//-}"
# echo "name=${{vars.DOCKER_IMAGE}}:$ver" >> $GITHUB_OUTPUT
# - id: doit
# uses: ./.github/actions/docker_build
# with:
# image: ${{steps.image_name.outputs.name}}
# checksum: ${{needs.setup.outputs.checksum}}
# target: "dist"
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# token: ${{ secrets.GITHUB_TOKEN }}
# - run: |
# echo "::notice:: ${{steps.image_name.outputs.name}} pushed to dockerhub"