[WIP] test: add login, container files and PR check automation #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Check Test | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
# Do we want to have this or similar check or run by default? | |
# check-org-membership: | |
# runs-on: ubuntu-latest | |
# outputs: | |
# org-member: ${{ steps.org-check.outputs.org-member }} | |
# steps: | |
# - name: Check if PR author is a member of the organization | |
# continue-on-error: true | |
# id: org-check | |
# run: | | |
# ORG="${{ github.repository_owner }}" | |
# AUTHOR="${{ github.event.pull_request.user.login }}" | |
# if ! gh api /orgs/$ORG/members/$AUTHOR; then | |
# echo '### ❌ PR author is not a member of GitHub organization' >> $GITHUB_STEP_SUMMARY | |
# exit 1 | |
# fi | |
# echo "org-member=true" >> $GITHUB_OUTPUT | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.HAC_TEST_GH_TOKEN }} | |
e2e-test: | |
# if: ${{ (needs.check-org-membership.outputs.org-member == 'true') || (github.event.pull_request.user.login == 'renovate[bot]') || contains(github.event.pull_request.labels.*.name, 'ok-to-test') }} | |
# needs: check-org-membership | |
runs-on: ubuntu-latest | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: false | |
docker-images: false | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: 'konflux-ci/konflux-ci' | |
ref: 'main' | |
- name: Disable AppArmor | |
# works around a change in ubuntu 24.04 that restricts Linux namespace access | |
# for unprivileged users | |
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 | |
- name: Create k8s Kind Cluster | |
uses: helm/kind-action@v1 | |
with: | |
config: kind-config.yaml | |
- name: Show version information | |
run: | | |
kubectl version | |
kind version | |
- name: List namespaces | |
run: | | |
kubectl get namespace | |
- name: Deploying Dependencies | |
run: | | |
./deploy-deps.sh | |
- name: List namespaces | |
run: | | |
kubectl get namespace | |
- name: Wait for the dependencies to be ready | |
run: | | |
./wait-for-all.sh | |
- name: WORKAROUND - Set up tkn cli for the following task | |
uses: tektoncd/actions/setup-tektoncd-cli@main | |
with: | |
version: latest | |
- name: WORKAROUND - Remove clair-scan task from docker-pipeline | |
run: | | |
./test/e2e/customize-docker-pipeline.sh | |
- name: Deploying Konflux | |
run: | | |
./deploy-konflux.sh | |
- name: List namespaces | |
run: | | |
kubectl get namespace | |
- name: Deploy test resources | |
run: | | |
./deploy-test-resources.sh | |
- name: Prepare resources for E2E tests | |
# Sets secrets, deploys image controller and setup smee. | |
env: | |
APP_ID: ${{ secrets.GH_APP_ID }} | |
APP_PRIVATE_KEY: ${{ secrets.GH_APP_PRIVATE_KEY }} | |
APP_WEBHOOK_SECRET: ${{ secrets.GH_APP_WEBHOOK_SECRET }} | |
QUAY_ORG: ${{ secrets.QUAY_TEST_ORG }} | |
QUAY_TOKEN: ${{ secrets.QUAY_TOKEN_TEST }} | |
SMEE_CHANNEL: ${{ secrets.SMEE_URL }} | |
run: | | |
./test/e2e/prepare-e2e.sh | |
- name: Checkout Konflux-UI Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: 'konflux-ci/konflux-ui' | |
- name: Install konflux-ui | |
run: | | |
cd konflux-ui | |
yarn install | |
yarn start | |
- name: Run E2E tests | |
env: | |
GH_ORG: ${{ secrets.GH_ORG }} | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
QUAY_DOCKERCONFIGJSON: ${{ secrets.QUAY_DOCKERCONFIGJSON }} | |
run: | | |
TEST_IMAGE="quay.io/konflux_ui_qe/konflux-ui-tests:latest" | |
#Rebuild test image if Dockerfile from e2e-tests was changed | |
if ! git diff --exit-code --quiet origin/$ghprbTargetBranch HEAD -- e2e-tests/Dockerfile; then | |
echo "Dockerfile changes detected, rebuilding test image" | |
TEST_IMAGE="konflux-ui-tests:pr-${ghprbPullId}" | |
cd e2e-tests | |
podman build -t "$TEST_IMAGE" . -f Dockerfile | |
cd .. | |
fi | |
cd konflux-ui/e2e-tests | |
echo "running tests using image ${TEST_IMAGE}" | |
# - name: Generate error logs | |
# if: ${{ !cancelled() }} | |
# run: | | |
# ./generate-err-logs.sh | |
# - name: Archive logs | |
# if: ${{ !cancelled() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: logs | |
# path: logs |