Skip to content

Commit

Permalink
Remove container logic from Github Actions workflow
Browse files Browse the repository at this point in the history
Since container building and pushing is now handled by RHTAP, remove
steps from Github Actions and exclusively run unit tests.

Signed-off-by: Antonio Torres <[email protected]>
  • Loading branch information
antoniotorresm committed Feb 6, 2024
1 parent 6c6cd21 commit 82af541
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 129 deletions.
143 changes: 17 additions & 126 deletions .github/workflows/gating.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Pull request pre-check build & test
name: Pull request pre-check test

on:
pull_request:
Expand All @@ -11,129 +11,20 @@ jobs:
name: Run the pre-commit hook
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- uses: pre-commit/[email protected]

build-container:
name: Build and push the ipa-tuura container
runs-on: ubuntu-latest
if: github.repository_owner == 'freeipa'
needs: [pre-commit]
env:
IMAGE_REGISTRY_GITHUB: ghcr.io
IMAGE_REGISTRY_QUAY: quay.io/idmops/ipa-tuura
IMAGE_TAG: ${{ github.event.number || github.ref_name }} # use PR number else ref_name -> branch name

steps:
- name: Set the ghcr.io image name derived from repository name
run: |
echo "IMAGE_REGISTRY_GITHUB=${IMAGE_REGISTRY_GITHUB}/${IMAGE,,}" >> ${GITHUB_ENV}
env:
IMAGE: '${{ github.repository }}'

- name: Log in to the GitHub Container registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.IMAGE_REGISTRY_GITHUB }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Log in to Quay.io
if: github.event_name != 'pull_request'
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.IMAGE_REGISTRY_QUAY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}

- uses: actions/checkout@v3

- name: build image
id: build-image
run: |
sudo -E su
podman build -t ${{ env.IMAGE_REGISTRY_GITHUB }}:${{ env.IMAGE_TAG }} -f Containerfile.test .
- name: Print image
run: |
sudo -E su
podman images
- name: Push to Repositories if PR is not from fork
id: push-to-repo
uses: redhat-actions/push-to-registry@v2
if: |
github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
with:
image: ${{ env.IMAGE_REGISTRY_GITHUB }}
tags: ${{ env.IMAGE_TAG }}
registry: ${{ env.IMAGE_REGISTRY_QUAY }}

- name: Print image url if PR is not from fork
if: |
github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
run: echo "Image pushed to ${{ steps.push-to-repo.outputs.registry-paths }}"

- name: Deploy the service
run: |
sudo -E su
podman run -d --privileged \
-p 8000:8000 -p 3501:3500 -p 4701:81 -p 4430:443 \
--hostname bridge.ipa.test \
--name bridge \
${{ env.IMAGE_REGISTRY_GITHUB }}:${{ env.IMAGE_TAG }}
- name: Run the unit tests
run: |
sudo -E su
podman exec -it bridge sh -c "coverage run manage.py test domains -v 2 &&
coverage report &&
coverage html"
pull-container:
name: Pull the ipa-tuura container if PR is not from fork
runs-on: ubuntu-latest
if: |
github.repository_owner == 'freeipa' &&
github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
needs: [build-container]
env:
IMAGE_REGISTRY_GITHUB: ghcr.io
IMAGE_REGISTRY_QUAY: quay.io/idmops/ipa-tuura
IMAGE_TAG: ${{ github.event.number || github.ref_name }} # use PR number else ref_name -> branch name

steps:
- name: Set the ghcr.io image name derived from repository name (PR from repo)
run: |
echo "IMAGE_REGISTRY_GITHUB=${IMAGE_REGISTRY_GITHUB}/${IMAGE,,}" >> ${GITHUB_ENV}
env:
IMAGE: '${{ github.repository }}'

- name: Log in to the GitHub Container registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.IMAGE_REGISTRY_GITHUB }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Log in to Quay.io
if: github.event_name != 'pull_request'
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.IMAGE_REGISTRY_QUAY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}

- name: Pull the image previously built from GitHub Container registry
run: |
podman pull ${{ env.IMAGE_REGISTRY_GITHUB }}:${{ env.IMAGE_TAG }}
podman images
- name: Pull the image previously built from Quay.io
if: github.event_name != 'pull_request'
run: |
podman pull ${{ env.IMAGE_REGISTRY_QUAY }}:${{ env.IMAGE_TAG }}
podman images
python-version: '3.x'
- name: Install dependencies
run: |
sudo apt install build-essential libdbus-1-dev libldap-dev libsasl2-dev python3-ipalib
python -m pip install --upgrade pip
pip install -r src/install/requirements.txt
pip install coverage factory_boy
- name: Run coverage
run: |
cd src/ipa-tuura/
coverage run manage.py test domains -v 2
coverage report
coverage html
3 changes: 0 additions & 3 deletions Containerfile.test
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ COPY . /www/ipa-tuura
# Install project dependencies
RUN pip install -r /www/ipa-tuura/src/install/requirements.txt

# Install Unit Test Dependencies
RUN pip install factory_boy coverage

# Packaging up Django model changes
WORKDIR /www/ipa-tuura/src/ipa-tuura/
RUN python3 manage.py makemigrations
Expand Down

0 comments on commit 82af541

Please sign in to comment.