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