Skip to content

Instantly share code, notes, and snippets.

@badgeek
Created July 23, 2024 07:29
Show Gist options
  • Save badgeek/b21678b2bc09349a79bf3011759b1b35 to your computer and use it in GitHub Desktop.
Save badgeek/b21678b2bc09349a79bf3011759b1b35 to your computer and use it in GitHub Desktop.
FROM cypress/base
COPY . /opt/app
WORKDIR /opt/app
RUN npx cypress install # Install Cypress binary into image
COPY . .
ENTRYPOINT ["npx", "cypress", "run"]
@badgeek
Copy link
Author

badgeek commented Jul 23, 2024

run-cypress-tests:
@echo "Running Cypress tests..."
docker run --rm -v $(PWD):/app cypress npx cypress run

@badgeek
Copy link
Author

badgeek commented Jul 23, 2024

run-todo-test:
	pnpm run run-todo-test

run-actions-test:
	pnpm run run-actions-test

run-aliasing-test:
	pnpm run run-aliasing-test

run-assertions-test:
	pnpm run run-assertions-test

run-connectors-test:
	pnpm run run-connectors-test

run-cookies-test:
	pnpm run run-cookies-test

run-cypress-api-test:
	pnpm run run-cypress-api-test

run-files-test:
	pnpm run run-files-test

run-location-test:
	pnpm run run-location-test

run-misc-test:
	pnpm run run-misc-test

run-navigation-test:
	pnpm run run-navigation-test

run-network-requests-test:
	pnpm run run-network-requests-test

run-querying-test:
	pnpm run run-querying-test

run-spies-stubs-clocks-test:
	pnpm run run-spies-stubs-clocks-test

run-storage-test:
	pnpm run run-storage-test

run-traversal-test:
	pnpm run run-traversal-test

run-utilities-test:
	pnpm run run-utilities-test

run-viewport-test:
	pnpm run run-viewport-test

run-waiting-test:
	pnpm run run-waiting-test

run-window-test:
	pnpm run run-window-test

run-all-tests:
	pnpm run run-todo-test
	pnpm run run-actions-test
	pnpm run run-aliasing-test
	pnpm run run-assertions-test
	pnpm run run-connectors-test
	pnpm run run-cookies-test
	pnpm run run-cypress-api-test
	pnpm run run-files-test
	pnpm run run-location-test
	pnpm run run-misc-test
	pnpm run run-navigation-test
	pnpm run run-network-requests-test
	pnpm run run-querying-test
	pnpm run run-spies-stubs-clocks-test
	pnpm run run-storage-test
	pnpm run run-traversal-test
	pnpm run run-utilities-test
	pnpm run run-viewport-test
	pnpm run run-waiting-test
	pnpm run run-window-test

help:
	@echo "Available tests:"
	@echo "  run-todo-test"
	@echo "  run-actions-test"
	@echo "  run-aliasing-test"
	@echo "  run-assertions-test"
	@echo "  run-connectors-test"
	@echo "  run-cookies-test"
	@echo "  run-cypress-api-test"
	@echo "  run-files-test"
	@echo "  run-location-test"
	@echo "  run-misc-test"
	@echo "  run-navigation-test"
	@echo "  run-network-requests-test"
	@echo "  run-querying-test"
	@echo "  run-spies-stubs-clocks-test"
	@echo "  run-storage-test"
	@echo "  run-traversal-test"
	@echo "  run-utilities-test"
	@echo "  run-viewport-test"
	@echo "  run-waiting-test"
	@echo "  run-window-test"
	@echo "  run-all-tests"


build-docker:
	docker build -t cypress-test .

run-cypress-tests:
	@echo "Running Cypress tests..."
	docker run --rm -v $(PWD):/app cypress npx cypress run

@badgeek
Copy link
Author

badgeek commented Jul 23, 2024

To execute Docker commands inside a Jenkins Docker container, you need to set up Docker-in-Docker (DinD) or Docker-outside-of-Docker (DooD). Here's a concise guide for the DooD approach, which is generally recommended:

  1. Modify your Jenkins Docker run command:
docker run -d --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts
  1. Install Docker CLI in Jenkins container:
# Access the Jenkins container
docker exec -it jenkins bash

# Install Docker CLI
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# Add jenkins user to docker group
usermod -aG docker jenkins

# Exit the container
exit

# Restart Jenkins container
docker restart jenkins
  1. In your Jenkins pipeline, you can now use Docker commands:
pipeline {
    agent any
    stages {
        stage('Docker Test') {
            steps {
                sh 'docker --version'
                sh 'docker ps'
            }
        }
    }
}

Remember to grant necessary permissions to the /var/run/docker.sock file on the host system if you encounter permission issues.

@badgeek
Copy link
Author

badgeek commented Jul 23, 2024

install-jenkins:
	@echo "Running Jenkins Docker container..."
	docker run -d --name jenkins \
	  -p 8080:8080 -p 50000:50000 \
	  -v /var/run/docker.sock:/var/run/docker.sock \
	  -v jenkins_home:/var/jenkins_home \
	  jenkins/jenkins:lts

install-docker-cli:
	@echo "Installing Docker CLI in Jenkins container..."
	# Access the Jenkins container
	docker exec -it -u root jenkins bash -c "\
	  curl -fsSL https://get.docker.com -o get-docker.sh && \
	  sh get-docker.sh && \
	  usermod -aG docker jenkins && \
	  exit"

restart-jenkins:
	@echo "Restarting Jenkins container..."
	docker restart jenkins

delete-jenkins:
	@echo "Deleting Jenkins container..."
	docker rm -f jenkins

@badgeek
Copy link
Author

badgeek commented Jul 23, 2024

fix-permission:
	@echo "Fixing permissions for Docker socket..."
	docker exec -it -u root jenkins bash -c "\
	  chmod 666 /var/run/docker.sock && \
	  exit"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment