Integration Tests 🧪 #2541
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: Integration Tests 🧪 | |
on: | |
workflow_call: | |
workflow_dispatch: | |
schedule: | |
- cron: 30 15 * * 0-6 | |
jobs: | |
integration-cross-repo-push: | |
container: node:16.13 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Container Dependencies 📚 | |
run: | | |
apt-get update && apt-get install -y rsync | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
repository-name: MontezumaIves/lab | |
token: ${{ secrets.ACCESS_TOKEN }} | |
commit-message: 'Test commit' | |
folder: integration | |
single-commit: true | |
clean: true | |
silent: false | |
integration-checkout-v1: | |
needs: integration-cross-repo-push | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{ secrets.ACCESS_TOKEN }} | |
folder: integration | |
target-folder: cat/montezuma | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
silent: false | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages | |
integration-checkout-v2: | |
needs: integration-checkout-v1 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: integration | |
target-folder: cat/montezuma2 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages | |
# Deploys using a container that requires you to install rsync. | |
integration-container: | |
needs: integration-checkout-v2 | |
runs-on: ubuntu-latest | |
container: | |
image: ruby:2.6 | |
env: | |
LANG: C.UTF-8 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install rsync | |
run: | | |
apt-get update && apt-get install -y rsync | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: integration | |
target-folder: cat/montezuma2 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages | |
# Deploys using an SSH key. | |
integration-ssh: | |
needs: integration-container | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
folder: integration | |
target-folder: cat/montezuma3 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages | |
# Deploys using an SSH key. | |
integration-ssh-third-party-client: | |
needs: integration-ssh | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install SSH Client | |
uses: webfactory/[email protected] | |
with: | |
ssh-private-key: ${{ secrets.DEPLOY_KEY }} | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
ssh-key: true | |
folder: integration | |
target-folder: cat/montezuma4 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# Deploys using a custom env. (Includes subsequent commit) | |
integration-env: | |
needs: integration-ssh-third-party-client | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.node-version' | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
folder: integration | |
target-folder: cat/montezuma4 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
folder: integration | |
target-folder: cat/subsequent | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages | |
# Deploys using the CLEAN option. | |
integration-clean: | |
needs: | |
[ | |
integration-checkout-v1, | |
integration-checkout-v2, | |
integration-container, | |
integration-ssh, | |
integration-ssh-third-party-client, | |
integration-env | |
] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{ secrets.ACCESS_TOKEN }} | |
folder: integration | |
clean: true | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
# Deploys to a branch that doesn't exist with SINGLE_COMMIT. (Includes subsequent commit) | |
integration-branch-creation: | |
needs: integration-clean | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{ secrets.ACCESS_TOKEN }} | |
branch: integration-test-delete-prod | |
folder: integration | |
single-commit: true | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{ secrets.ACCESS_TOKEN }} | |
branch: integration-test-delete-prod | |
folder: integration | |
single-commit: true | |
target-folder: jives | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: integration-test-delete-prod | |
# Creates two competing deployments, one of which should rebase over the other. | |
# First conflicting deployment | |
integration-rebase-conflicts-1: | |
needs: integration-branch-creation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Create random file | |
run: echo $RANDOM > integration/1 | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
repository-name: MontezumaIves/lab | |
token: ${{ secrets.ACCESS_TOKEN }} | |
branch: gh-pages-rebase-conflict | |
folder: integration | |
force: false | |
# Second conflicting deployment | |
integration-rebase-conflicts-2: | |
needs: integration-rebase-conflicts-1 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Create random file | |
run: echo $RANDOM > integration/2 | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
repository-name: MontezumaIves/lab | |
token: ${{ secrets.ACCESS_TOKEN }} | |
branch: gh-pages-rebase-conflict | |
folder: integration | |
force: false | |
# Clean up conflicting deployments | |
integration-rebase-conflicts-cleanup: | |
needs: [integration-rebase-conflicts-1, integration-rebase-conflicts-2] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.ACCESS_TOKEN }} | |
owner: MontezumaIves | |
repository: lab | |
branches: gh-pages | |
integration-root-folder: | |
needs: integration-rebase-conflicts-cleanup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Echo | |
working-directory: integration | |
run: | | |
echo "Here" | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: . | |
target-folder: cat/montezuma5 | |
silent: false | |
git-config-name: Montezuma | |
git-config-email: [email protected] | |
- name: Cleanup Generated Branch | |
uses: dawidd6/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branches: gh-pages |