committed by
GitHub
parent
4285a68f3e
commit
64f7c88114
25
.github/README.md
vendored
Normal file
25
.github/README.md
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# GitHub Actions
|
||||
## Background
|
||||
We want to make attempts to run our integration tests in the same manner wether using GitHub actions or on a developers's machine locally. For this reason, the tests are curated to run using conatiner images. As of this writing, two images exist which we would like to test against:
|
||||
- quay.io/ansible-product-demos/apd-ee-24:latest
|
||||
- quay.io/ansible-product-demos/apd-ee-25:latest
|
||||
|
||||
These images are built given the structure defined in their respective EE [definitions][../execution_environments]. Because they differ (mainly due to their python versions), each gets some special handling.
|
||||
|
||||
## Troubleshooting GitHub Actions
|
||||
|
||||
### Interactive
|
||||
It is likely the most straight-forward approach to interactively debug issues. The following podman command can be run from the project root directory to replicate the GitHub action:
|
||||
```
|
||||
podman run \
|
||||
--user root \
|
||||
-v $(pwd):/runner:Z \
|
||||
-it \
|
||||
<image> \
|
||||
/bin/bash
|
||||
```
|
||||
`<image>` is one of `quay.io/ansible-product-demos/apd-ee-25:latest`, `quay.io/ansible-product-demos/apd-ee-24:latest`
|
||||
It is not exact because GitHub seems to run closer to a sidecar container paradigm, and uses docker instead of podman, but hopefully it's close enough.
|
||||
|
||||
For the 24 EE, the python interpreriter verions is set for our pre-commit script like so: `USE_PYTHON=python3.9 ./.github/workflows/run-pc.sh`
|
||||
The 25 EE is similary run but without the need for this variable: `./.github/workflows/run-pc.sh`
|
||||
24
.github/workflows/pre-commit.yml
vendored
24
.github/workflows/pre-commit.yml
vendored
@@ -4,17 +4,23 @@ on:
|
||||
- push
|
||||
- pull_request_target
|
||||
|
||||
env:
|
||||
ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN: ${{ secrets.ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN }}
|
||||
ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN: ${{ secrets.ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN }}
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
name: pre-commit
|
||||
pre-commit-25:
|
||||
container:
|
||||
image: quay.io/ansible-product-demos/apd-ee-25
|
||||
options: --user root
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
- run: ./.github/workflows/run-pc.sh
|
||||
shell: bash
|
||||
pre-commit-24:
|
||||
container:
|
||||
image: quay.io/ansible-product-demos/apd-ee-24
|
||||
options: --user root
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: USE_PYTHON=python3.9 ./.github/workflows/run-pc.sh
|
||||
shell: bash
|
||||
|
||||
...
|
||||
|
||||
24
.github/workflows/run-pc.sh
vendored
Executable file
24
.github/workflows/run-pc.sh
vendored
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
dnf install git-lfs -y
|
||||
|
||||
PYTHON_VARIANT="${USE_PYTHON:-python3.11}"
|
||||
PATH="$PATH:$HOME/.local/bin"
|
||||
|
||||
# intsall pip
|
||||
eval "${PYTHON_VARIANT} -m pip install --user --upgrade pip"
|
||||
|
||||
# try to fix 2.4 incompatibility
|
||||
eval "${PYTHON_VARIANT} -m pip install --user --upgrade setuptools wheel twine check-wheel-contents"
|
||||
|
||||
# intsall pre-commit
|
||||
eval "${PYTHON_VARIANT} -m pip install --user pre-commit"
|
||||
|
||||
# view pip packages
|
||||
eval "${PYTHON_VARIANT} -m pip freeze --local"
|
||||
|
||||
# fix permissions on directory
|
||||
git config --global --add safe.directory $(pwd)
|
||||
|
||||
# run pre-commit
|
||||
pre-commit run --config $(pwd)/.pre-commit-gh.yml --show-diff-on-failure --color=always
|
||||
Reference in New Issue
Block a user