Integration Tests 🧪 #1973
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_dispatch: | |
inputs: | |
branch: | |
description: 'Specifies the branch which the integration tests should run on.' | |
required: true | |
default: 'releases/v4' | |
schedule: | |
- cron: 30 15 * * 0-6 | |
push: | |
tags-ignore: | |
- '*.*' | |
branches: | |
- releases/v4 | |
jobs: | |
# Deploys cross repo with an access token. | |
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@v3 | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
git-config-name: Montezuma | |
git-config-email: montezuma@jamesiv.es | |
repository-name: MontezumaIves/lab | |
token: ${{ secrets.ACCESS_TOKEN }} | |
commit-message: 'Test commit' | |
folder: integration | |
single-commit: true | |
clean: true | |
silent: true | |
# Deploys using checkout@v1 with an ACCESS_TOKEN. | |
integration-checkout-v1: | |
needs: integration-cross-repo-push | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- 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: montezuma@jamesiv.es | |
silent: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# Deploys using checkout@v2 with a GITHUB_TOKEN. | |
integration-checkout-v2: | |
needs: integration-checkout-v1 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: integration | |
target-folder: cat/montezuma2 | |
silent: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# 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@v3 | |
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: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
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@v3 | |
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: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
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@v3 | |
with: | |
persist-credentials: false | |
- name: Install SSH Client | |
uses: webfactory/ssh-agent@v0.8.0 | |
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: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
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: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 'v16.13.2' | |
- name: Checkout | |
uses: actions/checkout@v3 | |
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/montezuma4 | |
silent: true | |
- name: Build and Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
folder: integration | |
target-folder: cat/subsequent | |
silent: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
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@v3 | |
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: true | |
# 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@v3 | |
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: true | |
- 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: true | |
- name: Cleanup Generated Branch | |
uses: dawidd6/action-delete-branch@v3.1.0 | |
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@v3 | |
- 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: montezuma@jamesiv.es | |
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@v3 | |
- 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: montezuma@jamesiv.es | |
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/action-delete-branch@v3.1.0 | |
with: | |
github_token: ${{ secrets.ACCESS_TOKEN }} | |
owner: MontezumaIves | |
repository: lab | |
branches: gh-pages |