Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
239 changes: 101 additions & 138 deletions .github/workflows/ee-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,50 +22,15 @@ on:
registry_redhat_password:
required: false

jobs:
debug:
if: github.event_name == 'pull_request_target'
runs-on: [self-hosted, Linux, X64]
environment: test
steps:
- name: Checkout repo
uses: actions/checkout@v6
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref != '' && github.event.pull_request.head.ref || 'main' }}

- name: Print working directory
run: pwd

- name: List files in the directory
run: ls -lahR

- name: List environment variables
run: printenv | sort

- name: Show git branch and commit
run: |
echo "Current Branch:"
git branch
echo "Current Commit:"
git rev-parse HEAD

- name: Fetch all branches
run: git fetch --all

- name: List all remote branches
run: git branch -r

- name: Show detailed git diff
run: git diff origin/main

build-ee:
outputs:
push_success: ${{ steps.push_to_ghcr.outputs.push_success }}
runs-on: [self-hosted, Linux, X64]
push_success: ${{ steps.push_to_pah.outputs.push_success }}
runs-on: [self-hosted, rhel10, onprem, ansible]
environment: ${{ github.event_name }}
steps:
- name: Clean up Podman directories
run: rm -rf /tmp/storage-run-992/containers /tmp/storage-run-992/libpod/tmp

- name: Checkout repo
uses: actions/checkout@v6
with:
Expand All @@ -84,7 +49,6 @@ jobs:
run: |
echo "EE=`yq -r '.options.tags[0]' 'execution-environment.yml'`" >> $GITHUB_ENV
echo "EE_file=execution-environment.yml" >> $GITHUB_ENV
echo "IMAGE_REGISTRY=ghcr.io" >> $GITHUB_ENV

- name: Define environment variables for PR
if: github.event_name == 'pull_request_target'
Expand All @@ -101,12 +65,12 @@ jobs:
run: |
echo $GITHUB_ENV

- name: Login to ghcr
- name: Login to Private Automation Hub
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.IMAGE_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ${{ secrets.AUTOMATIONHUB_URL }}
username: ${{ secrets.AUTOMATIONHUB_USERNAME }}
password: ${{ secrets.AUTOMATIONHUB_PASSWORD }}

- name: (devel) Build image and create artifact
run: |
Expand All @@ -115,106 +79,105 @@ jobs:
- name: Build image and create artifact
run: |
ansible-builder build -v 3 \
--build-arg AH_TOKEN=${{ secrets.AH_TOKEN }} \
--build-arg AUTOMATIONHUB_TOKEN=${{ secrets.AUTOMATIONHUB_TOKEN }} \
--context=../${{ env.EE }} \
--tag=${{ env.EE }}:${{ env.IMAGE_TAG }} \
--tag=${{ env.EE }}:${{ github.sha }}

# Create artifact file
COMMANDS_FILE="commands-${{ env.EE }}.txt"
echo "" >> $COMMANDS_FILE
echo "EE: ${{ env.EE }}" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "\`\`\`" > $COMMANDS_FILE
echo "podman pull ${{ env.EE }}:${{ env.IMAGE_TAG }}" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "<details>" >> $COMMANDS_FILE
echo "<summary><b>More info...</b></summary>" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "#### Installed collections" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
podman run -it ${{ env.EE }}:${{ env.IMAGE_TAG }} ansible-galaxy collection list >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "#### EE Testing" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "Installed collections" >> $COMMANDS_FILE
ansible-navigator collections --eei ${{ env.EE }}:${{ env.IMAGE_TAG }} --mode stdout --pp never | grep "known_as" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "Installed images" >> $COMMANDS_FILE
ansible-navigator images --eei ${{ env.EE }}:${{ env.IMAGE_TAG }} --mode stdout --pp never | grep "name_tag" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "#### Ansible version" >> $COMMANDS_FILE
echo "" >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
podman run -it ${{ env.EE }}:${{ env.IMAGE_TAG }} ansible --version >> $COMMANDS_FILE
echo "\`\`\`" >> $COMMANDS_FILE
echo "</details>" >> $COMMANDS_FILE

- name: Upload build artifact
uses: coactions/upload-artifact@v4
with:
name: commands-${{ env.EE }}
path: ./commands-${{ env.EE }}.txt

- name: Push To GHCR
id: push_to_ghcr
--tag=${{ env.EE }}:${{ env.IMAGE_TAG }}

# # Create artifact file
# COMMANDS_FILE="commands-${{ env.EE }}.txt"
# echo "" >> $COMMANDS_FILE
# echo "EE: ${{ env.EE }}" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "\`\`\`" > $COMMANDS_FILE
# echo "podman pull ${{ env.EE }}:${{ env.IMAGE_TAG }}" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "<details>" >> $COMMANDS_FILE
# echo "<summary><b>More info...</b></summary>" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "#### Installed collections" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# podman run -it ${{ env.EE }}:${{ env.IMAGE_TAG }} ansible-galaxy collection list >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "#### EE Testing" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "Installed collections" >> $COMMANDS_FILE
# ansible-navigator collections --eei ${{ env.EE }}:${{ env.IMAGE_TAG }} --mode stdout --pp never | grep "known_as" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "Installed images" >> $COMMANDS_FILE
# ansible-navigator images --eei ${{ env.EE }}:${{ env.IMAGE_TAG }} --mode stdout --pp never | grep "name_tag" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "#### Ansible version" >> $COMMANDS_FILE
# echo "" >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# podman run -it ${{ env.EE }}:${{ env.IMAGE_TAG }} ansible --version >> $COMMANDS_FILE
# echo "\`\`\`" >> $COMMANDS_FILE
# echo "</details>" >> $COMMANDS_FILE

# - name: Upload build artifact
# uses: coactions/upload-artifact@v4
# with:
# name: commands-${{ env.EE }}
# path: ./commands-${{ env.EE }}.txt

- name: Push To Private Automation Hub
id: push_to_pah
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ env.EE }}
tags: ${{ env.IMAGE_TAG }}
registry: ${{ env.IMAGE_REGISTRY }}/${{ github.repository_owner }}
registry: ${{ secrets.AUTOMATIONHUB_URL }}

- name: Set push success flag
if: success()
run: echo "push_success=true" >> $GITHUB_ENV

- name: Print summary
run: |
echo "## Usage" >> $GITHUB_STEP_SUMMARY
echo "Image pushed to repository: ${{ env.IMAGE_REGISTRY }}/${{ github.repository_owner }}/${{ env.EE }}:${{ env.IMAGE_TAG }}" >> $GITHUB_STEP_SUMMARY
echo "> \`podman pull ${{ env.IMAGE_REGISTRY }}/${{ github.repository_owner }}/${{ env.EE }}:${{ env.IMAGE_TAG }}\`" >> $GITHUB_STEP_SUMMARY

post-comment:
if: github.event_name == 'pull_request_target'
needs: build-ee
runs-on: [self-hosted, Linux, X64]
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Download Artifacts
uses: actions/download-artifact@v7

- name: Post Comment
uses: actions/github-script@v8
with:
script: |
const fs = require('fs');
const path = require('path');
let commentBody = '### **EE Images Built** \n\n';

const artifactsDirectory = './'; // Base directory where artifacts are downloaded
fs.readdirSync(artifactsDirectory, { withFileTypes: true }).forEach(dirent => {
if (dirent.isDirectory() && dirent.name.startsWith('commands-')) {
const artifactDirPath = path.join(artifactsDirectory, dirent.name);
fs.readdirSync(artifactDirPath).forEach(file => {
const filePath = path.join(artifactDirPath, file);
const content = fs.readFileSync(filePath, 'utf8');
commentBody += content + '\n';
});
}
});

const prNumber = context.issue.number;
const repo = context.repo;
github.rest.issues.createComment({
...repo,
issue_number: prNumber,
body: commentBody.trim()
});
# - name: Print summary
# run: |
# echo "## Usage" >> $GITHUB_STEP_SUMMARY
# echo "Image pushed to repository: ${{ env.IMAGE_REGISTRY }}/${{ github.repository_owner }}/${{ env.EE }}:${{ env.IMAGE_TAG }}" >> $GITHUB_STEP_SUMMARY
# echo "> \`podman pull ${{ env.IMAGE_REGISTRY }}/${{ github.repository_owner }}/${{ env.EE }}:${{ env.IMAGE_TAG }}\`" >> $GITHUB_STEP_SUMMARY

# post-comment:
# if: github.event_name == 'pull_request_target'
# needs: build-ee
# runs-on: [self-hosted, rhel10, onprem, ansible]
# steps:
# - name: Checkout
# uses: actions/checkout@v6

# - name: Download Artifacts
# uses: actions/download-artifact@v7

# - name: Post Comment
# uses: actions/github-script@v8
# with:
# script: |
# const fs = require('fs');
# const path = require('path');
# let commentBody = '### **EE Images Built** \n\n';

# const artifactsDirectory = './'; // Base directory where artifacts are downloaded
# fs.readdirSync(artifactsDirectory, { withFileTypes: true }).forEach(dirent => {
# if (dirent.isDirectory() && dirent.name.startsWith('commands-')) {
# const artifactDirPath = path.join(artifactsDirectory, dirent.name);
# fs.readdirSync(artifactDirPath).forEach(file => {
# const filePath = path.join(artifactDirPath, file);
# const content = fs.readFileSync(filePath, 'utf8');
# commentBody += content + '\n';
# });
# }
# });

# const prNumber = context.issue.number;
# const repo = context.repo;
# github.rest.issues.createComment({
# ...repo,
# issue_number: prNumber,
# body: commentBody.trim()
# });
8 changes: 8 additions & 0 deletions execution-environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
version: 3

dependencies:
galaxy:
collections:
- community.general
- community.postgresql
- ansible.controller

python:
- psycopg2
- psycopg2-binary
Expand All @@ -14,6 +20,8 @@ dependencies:

options:
package_manager_path: /usr/bin/microdnf
tags:
- aap.texasroadracing.com/texasroadracing/postgresql--supported-rhel9:1.2

images:
base_image:
Expand Down