Skip to content

Do not expose JBOSS_TX_NODE_ID, fix python version in CI #113

Do not expose JBOSS_TX_NODE_ID, fix python version in CI

Do not expose JBOSS_TX_NODE_ID, fix python version in CI #113

name: WildFly CEKit OpenShift Modules - Build WildFly cloud galleon feature-pack and Test WildFly s2i image if the changes introduced in the PR impact it.
on:
pull_request:
branches: [ main ]
env:
LANG: en_US.UTF-8
S2I_URI: https://github.com/openshift/source-to-image/releases/download/v1.3.1/source-to-image-v1.3.1-a5a77147-linux-amd64.tar.gz
FORK_REPO: ${{ github.event.pull_request.head.repo.full_name }}
jobs:
wfci:
name: WildFly-s2i Build and Test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- id: files
uses: jitterbit/get-changed-files@v1
- run: |
for changed_file in ${{ steps.files.outputs.all }}; do
if [[ ! "${changed_file}" =~ ^jboss/container/wildfly/s2i/2.0/.* ]] && [[ ! "${changed_file}" =~ ^jboss/container/wildfly/run/.* ]] && [[ "${changed_file}" =~ ^jboss/container/wildfly/.* ]]; then
echo "Change detected in ${changed_file}, will build cloud feature-pack and test images."
echo "IMPACT_CLOUD_FP=true" >> "$GITHUB_ENV"
exit 0
fi
done
echo "No change detected that would impact the cloud feature-pack, skipping the job"
- name: Update hosts - linux
if: matrix.os == 'ubuntu-latest' && env.IMPACT_CLOUD_FP == 'true'
run: |
cat /etc/hosts
sudo bash -c "echo '127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4' > /etc/hosts"
sudo bash -c "echo '::1 localhost localhost.localdomain localhost6 localhost6.localdomain6' >> /etc/hosts"
sudo sysctl -w fs.file-max=2097152
- uses: actions/checkout@v2
if: env.IMPACT_CLOUD_FP == 'true'
with:
path: wildfly-cekit-modules
- uses: actions/checkout@v2
if: env.IMPACT_CLOUD_FP == 'true'
with:
repository: wildfly/wildfly-s2i
path: wildfly-s2i
- uses: actions/checkout@v2
if: env.IMPACT_CLOUD_FP == 'true'
with:
repository: wildfly-extras/wildfly-cloud-galleon-pack
ref: main
path: wildfly-cloud-galleon-pack
- uses: n1hility/cancel-previous-runs@v2
if: env.IMPACT_CLOUD_FP == 'true'
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Build cloud FP
if: env.IMPACT_CLOUD_FP == 'true'
run: |
echo Using "${FORK_REPO%%/*}" and "${GITHUB_HEAD_REF##*/}" to build cloud feature-pack
mvn clean install -DskipTests -Dwildfly.cekit.modules.fork="${FORK_REPO%%/*}" -Dwildfly.cekit.modules.tag="${GITHUB_HEAD_REF##*/}"
cloudVersion=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "CLOUD_FP_VERSION=${cloudVersion}" >> $GITHUB_ENV
mkdir -p custom-cloud-image
mkdir -p custom-cloud-image/docker/repository/org/wildfly/cloud/wildfly-cloud-galleon-pack/$cloudVersion
mkdir -p custom-cloud-image/docker/repository/org/wildfly/cloud/wildfly-preview-cloud-galleon-pack/$cloudVersion
cp wildfly-cloud-galleon-pack/target/wildfly-cloud-galleon-pack-$cloudVersion.zip custom-cloud-image/docker/repository/org/wildfly/cloud/wildfly-cloud-galleon-pack/$cloudVersion
cp wildfly-preview-cloud-galleon-pack/target/wildfly-preview-cloud-galleon-pack-$cloudVersion.zip custom-cloud-image/docker/repository/org/wildfly/cloud/wildfly-preview-cloud-galleon-pack/$cloudVersion
docker_file=custom-cloud-image/docker/Dockerfile
cat <<EOF > $docker_file
FROM wildfly/wildfly-s2i:latest
RUN mkdir -p /tmp/artifacts/m2
COPY --chown=jboss:root repository /tmp/artifacts/m2
EOF
working-directory: wildfly-cloud-galleon-pack
- name: Verify latest ubi8-minimal
if: env.IMPACT_CLOUD_FP == 'true'
run: |
docker pull registry.access.redhat.com/ubi8/ubi-minimal
docker image ls | grep ubi8
- name: Setup required system packages
if: env.IMPACT_CLOUD_FP == 'true'
run: |
sudo apt-get update
sudo apt-get install krb5-multidev libkrb5-dev
- name: Setup Python 3.x
if: env.IMPACT_CLOUD_FP == 'true'
uses: actions/setup-python@v2
with:
python-version: '3.11.5'
- name: Setup virtualenv and install cekit and required packages
if: env.IMPACT_CLOUD_FP == 'true'
run: |
python --version
sudo pip install virtualenv
mkdir ~/cekit
python3 -m venv ~/cekit
. ~/cekit/bin/activate
pip install cekit docker docker-squash odcs behave lxml packaging
- name: install s2i binary
if: env.IMPACT_CLOUD_FP == 'true'
run: |
echo ===== Installing s2i from ${{ env.S2I_URL }} =====
mkdir /tmp/s2i/ && cd /tmp/s2i/
wget ${{ env.S2I_URI }}
tar xvf source-to-image*.gz
sudo mv s2i /usr/bin
which s2i
s2i version
- name: Build image
if: env.IMPACT_CLOUD_FP == 'true'
run: |
. ~/cekit/bin/activate
pushd wildfly-builder-image
cekit build --overrides=jdk11-overrides.yaml docker
popd
docker image ls
working-directory: wildfly-s2i
- name: Build and test extended image containing custom WildFly cloud feature-pack
if: env.IMPACT_CLOUD_FP == 'true'
run: |
docker build -t wildfly/wildfly-s2i:dev-${{ env.CLOUD_FP_VERSION }} ./custom-cloud-image/docker
cp -r ../wildfly-s2i/wildfly-builder-image ./custom-cloud-image
cp -r ../wildfly-s2i/wildfly-modules ./custom-cloud-image
comment="### PLACEHOLDER FOR CLOUD CUSTOM TESTING ###"
replacement="\|MAVEN_ARGS_APPEND\|-Dversion.wildfly.cloud.galleon.pack=${{ env.CLOUD_FP_VERSION }}\|"
legacyReplacement="org.wildfly.cloud:wildfly-cloud-galleon-pack:${{ env.CLOUD_FP_VERSION }}\|"
legacyPlaceHolder="org.wildfly.cloud:wildfly-cloud-galleon-pack:.*\|"
for feature in custom-cloud-image/wildfly-builder-image/tests/features/*.feature; do
sed -i "s|$comment|$replacement|" "$feature"
sed -i "s|$legacyPlaceHolder|$legacyReplacement|" "$feature"
done
. ~/cekit/bin/activate
pushd custom-cloud-image/wildfly-builder-image
cekit test --image=wildfly/wildfly-s2i:dev-${{ env.CLOUD_FP_VERSION }} behave
popd
working-directory: wildfly-cloud-galleon-pack
- name: List containers
if: failure()
run: |
echo === RUNNING CONTAINERS ===
docker container ls
echo === RUNNING PROCESSES ===
top -b -n1
echo === DISK USAGE ===
df -h