Update workflow actions, add to gitignore #10
Workflow file for this run
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: 'Codeception Tests' | |
on: [ pull_request ] | |
jobs: | |
test: | |
strategy: | |
matrix: | |
suite: | |
- integration | |
runs-on: ubuntu-latest | |
steps: | |
# ------------------------------------------------------------------------------ | |
# Checkout the repo | |
# ------------------------------------------------------------------------------ | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1000 | |
token: ${{ secrets.GH_BOT_TOKEN }} | |
submodules: recursive | |
# ------------------------------------------------------------------------------ | |
# Check if any PHP files have changed | |
# ------------------------------------------------------------------------------ | |
- name: Check changed files | |
id: skip | |
run: | | |
num_php_files=$(git diff ${{ github.event.pull_request.base.sha }} HEAD --name-only | grep -P "\.php" | wc -l) | |
if [[ -z "$num_php_files" ]]; then | |
echo "value=1" >> $GITHUB_OUTPUT | |
echo "## No PHP Files changed, PHP tests automatically pass." >> $GITHUB_STEP_SUMMARY | |
elif [[ "$num_php_files" == "0" || "$num_php_files" == "" ]]; then | |
echo "value=1" >> $GITHUB_OUTPUT | |
echo "## No PHP Files changed, PHP tests automatically pass." >> $GITHUB_STEP_SUMMARY | |
else | |
echo "value=0" >> $GITHUB_OUTPUT | |
echo "## Found PHP file changes, running PHP tests." >> $GITHUB_STEP_SUMMARY | |
fi | |
# ------------------------------------------------------------------------------ | |
# Checkout slic | |
# ------------------------------------------------------------------------------ | |
- name: Checkout slic | |
uses: actions/checkout@v4 | |
if: steps.skip.outputs.value != 1 | |
with: | |
repository: stellarwp/slic | |
ref: main | |
path: slic | |
fetch-depth: 1 | |
# ------------------------------------------------------------------------------ | |
# Prepare our composer cache directory | |
# ------------------------------------------------------------------------------ | |
- name: Get Composer Cache Directory | |
id: get-composer-cache-dir | |
if: steps.skip.outputs.value != 1 | |
run: | | |
echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- uses: actions/cache@v2 | |
id: composer-cache | |
if: steps.skip.outputs.value != 1 | |
with: | |
path: ${{ steps.get-composer-cache-dir.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
# ------------------------------------------------------------------------------ | |
# Initialize slic | |
# ------------------------------------------------------------------------------ | |
- name: Set up slic env vars | |
if: steps.skip.outputs.value != 1 | |
run: | | |
echo "SLIC_BIN=${GITHUB_WORKSPACE}/slic/slic" >> $GITHUB_ENV | |
echo "TRIC_WP_DIR=${GITHUB_WORKSPACE}/slic/_wordpress" >> $GITHUB_ENV | |
echo "TRIC_WORDPRESS_DOCKERFILE=Dockerfile.base" >> $GITHUB_ENV | |
- name: Set run context for slic | |
if: steps.skip.outputs.value != 1 | |
run: echo "TRIC=1" >> $GITHUB_ENV && echo "CI=1" >> $GITHUB_ENV | |
- name: Start ssh-agent | |
if: steps.skip.outputs.value != 1 | |
run: | | |
mkdir -p "${HOME}/.ssh"; | |
ssh-agent -a /tmp/ssh_agent.sock; | |
- name: Export SSH_AUTH_SOCK env var | |
if: steps.skip.outputs.value != 1 | |
run: echo "SSH_AUTH_SOCK=/tmp/ssh_agent.sock" >> $GITHUB_ENV | |
- name: Set up slic for CI | |
if: steps.skip.outputs.value != 1 | |
run: | | |
cd ${GITHUB_WORKSPACE}/.. | |
${SLIC_BIN} here | |
${SLIC_BIN} interactive off | |
${SLIC_BIN} build-prompt off | |
${SLIC_BIN} build-subdir off | |
${SLIC_BIN} xdebug off | |
${SLIC_BIN} composer-cache set /home/runner/.cache/composer | |
${SLIC_BIN} debug on | |
${SLIC_BIN} info | |
${SLIC_BIN} config | |
# ------------------------------------------------------------------------------ | |
# Determine TEC branch | |
# ------------------------------------------------------------------------------ | |
- name: Fetch head branch from TEC | |
uses: octokit/[email protected] | |
if: steps.skip.outputs.value != 1 | |
id: fetch-tec-head-branch | |
with: | |
route: GET /repos/{owner}/{repo}/branches/${{ github.head_ref }} | |
owner: the-events-calendar | |
repo: the-events-calendar | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }} | |
continue-on-error: true | |
- name: Fetch base branch from TEC | |
uses: octokit/[email protected] | |
id: fetch-tec-base-branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-tec-head-branch.outcome != 'success' | |
with: | |
route: GET /repos/{owner}/{repo}/branches/${{ github.base_ref }} | |
owner: the-events-calendar | |
repo: the-events-calendar | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }} | |
continue-on-error: true | |
# ------------------------------------------------------------------------------ | |
# Set TEC branch | |
# ------------------------------------------------------------------------------ | |
- name: Set TEC with head branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-tec-head-branch.outcome == 'success' | |
run: echo "TEC_BRANCH=${{ github.head_ref }}" >> $GITHUB_ENV | |
- name: Set TEC with base branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-tec-head-branch.outcome != 'success' && steps.fetch-tec-base-branch.outcome == 'success' | |
run: echo "TEC_BRANCH=${{ github.base_ref }}" >> $GITHUB_ENV | |
- name: Set TEC with master branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-tec-head-branch.outcome != 'success' && steps.fetch-tec-base-branch.outcome != 'success' | |
run: echo "TEC_BRANCH=master" >> $GITHUB_ENV | |
# ------------------------------------------------------------------------------ | |
# Clone and init TEC | |
# ------------------------------------------------------------------------------ | |
- name: Clone TEC | |
uses: actions/checkout@v4 | |
if: steps.skip.outputs.value != 1 | |
with: | |
fetch-depth: 1 | |
repository: the-events-calendar/the-events-calendar | |
ref: ${{ env.TEC_BRANCH }} | |
token: ${{ secrets.GH_BOT_TOKEN }} | |
path: the-events-calendar | |
submodules: recursive | |
- name: Init TEC | |
if: steps.skip.outputs.value != 1 | |
run: | | |
mv ${GITHUB_WORKSPACE}/the-events-calendar ${GITHUB_WORKSPACE}/../the-events-calendar | |
docker network prune -f | |
${SLIC_BIN} use the-events-calendar | |
${SLIC_BIN} composer install --no-dev | |
- name: Set up Common | |
if: steps.skip.outputs.value != 1 | |
run: | | |
docker network prune -f | |
${SLIC_BIN} use the-events-calendar/common | |
${SLIC_BIN} composer install --no-dev | |
# ------------------------------------------------------------------------------ | |
# Determine ECP branch | |
# ------------------------------------------------------------------------------ | |
- name: Fetch head branch from ECP | |
uses: octokit/[email protected] | |
if: steps.skip.outputs.value != 1 | |
id: fetch-ecp-head-branch | |
with: | |
route: GET /repos/{owner}/{repo}/branches/${{ github.head_ref }} | |
owner: the-events-calendar | |
repo: events-pro | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }} | |
continue-on-error: true | |
- name: Fetch base branch from ECP | |
uses: octokit/[email protected] | |
id: fetch-ecp-base-branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-ecp-head-branch.outcome != 'success' | |
with: | |
route: GET /repos/{owner}/{repo}/branches/${{ github.base_ref }} | |
owner: the-events-calendar | |
repo: events-pro | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }} | |
continue-on-error: true | |
# ------------------------------------------------------------------------------ | |
# Set ECP branch | |
# ------------------------------------------------------------------------------ | |
- name: Set ECP with head branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-ecp-head-branch.outcome == 'success' | |
run: echo "ECP_BRANCH=${{ github.head_ref }}" >> $GITHUB_ENV | |
- name: Set ECP with base branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-ecp-head-branch.outcome != 'success' && steps.fetch-ecp-base-branch.outcome == 'success' | |
run: echo "ECP_BRANCH=${{ github.base_ref }}" >> $GITHUB_ENV | |
- name: Set ECP with master branch | |
if: steps.skip.outputs.value != 1 && steps.fetch-ecp-head-branch.outcome != 'success' && steps.fetch-ecp-base-branch.outcome != 'success' | |
run: echo "ECP_BRANCH=master" >> $GITHUB_ENV | |
# ------------------------------------------------------------------------------ | |
# Clone and init ECP | |
# ------------------------------------------------------------------------------ | |
- name: Clone ECP | |
uses: actions/checkout@v4 | |
if: steps.skip.outputs.value != 1 | |
with: | |
fetch-depth: 1 | |
repository: the-events-calendar/events-pro | |
ref: ${{ env.ECP_BRANCH }} | |
token: ${{ secrets.GH_BOT_TOKEN }} | |
path: events-pro | |
submodules: recursive | |
- name: Init ECP | |
if: steps.skip.outputs.value != 1 | |
run: | | |
mv ${GITHUB_WORKSPACE}/events-pro ${GITHUB_WORKSPACE}/../events-pro | |
docker network prune -f | |
${SLIC_BIN} use events-pro | |
${SLIC_BIN} composer install --no-dev | |
# ------------------------------------------------------------------------------ | |
# Set up Advanced Post Manager and run tests | |
# ------------------------------------------------------------------------------ | |
- name: Set up Advanced Post Manager | |
if: steps.skip.outputs.value != 1 | |
run: | | |
${SLIC_BIN} use advanced-post-manager | |
${SLIC_BIN} composer install | |
- name: Init the WordPress container | |
if: steps.skip.outputs.value != 1 | |
run: ${SLIC_BIN} up wordpress | |
- name: Ensure Twenty-Twenty is installed | |
if: steps.skip.outputs.value != 1 | |
run: | | |
${SLIC_BIN} wp theme install twentytwenty --activate | |
- name: Run suite tests | |
if: steps.skip.outputs.value != 1 | |
run: ${SLIC_BIN} run ${{ matrix.suite }} --ext DotReporter |