In this talk, I will discuss our experiences at Mollie with setting up the Jenkins Continuous Integration server for all our PHP projects. The talk will be aimed at developers with little or no experience with CI.
These slides are about my personal experience from creating a continuous delivery process in the last 2 years.
The main focus lies in the tools I used and my experience with them.
Production Ready WordPress - WC Utrecht 2017Edmund Turbin
This document discusses deploying code using version control and continuous integration. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. The solution involves setting up continuous integration where multiple developers can share code and have automated builds and testing on each push. A workflow is proposed where code is developed locally, stored in a central version control repository, built through continuous integration pipelines, and deployed to servers. Tools like Composer, NPM, Gulp and Assertible are demonstrated in an example deployment script for automated testing and deployment.
Jenkins to Gitlab - Intelligent Build-PipelinesChristian Münch
At netz98 we moved from Jenkins to Gitlab. The slides show some insides about Testing of PHP libraries, Magento 1 and Magento 2 modules. How to setup a scalable and fast Gitlab-Pipeline with Docker images.
This document discusses using version control and continuous integration to deploy code. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. The continuous integration workflow involves multiple developers sharing code through a central version control repository. Each code push is verified by automated builds to avoid integration issues and catch problems early. The document provides an example deployment script for Codeship that checks out code, installs dependencies, builds assets, commits changes, and pushes to the production remote. It also discusses testing deployments using Assertible and lessons learned around caching packages, installing dependencies, and using forceful Git pushes for deployment.
This document discusses deploying code using version control and continuous integration. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. Continuous integration helps multiple developers share code by automatically verifying each code push. The workflow involves local development, a central version control repository, continuous integration pipelines to build and test code, and deploying builds to servers. Initial setup involves cloning repositories, installing applications, and configuring environments. The script provided automates deploying code from Codeship to a Git repository, running Composer to install dependencies, committing changes, and running post-deployment tests with Assertible.
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
In diesem Talk beschreibe ich die Continuous Integartion Pipeline von punkt.de und deren Entstehen. Es wird motiviert, warum es sich lohnt, eine solche Pipeline zu implementieren und welche Tools wir dafür verwendet haben. Neben der Beschreibung von Git, Jenkins, Chef, Vagrant, Behat und Surf geht es auch um Integration der einzelnen Tools in eine Deployment Kette.
Make It Cooler: Using Decentralized Version Controlindiver
A commonly used version control system in the ColdFusion community is Subversion -- a centralized system that relies on being connected to a central server. The next generation version control systems are “decentralized”, in that version control tasks do not rely on a central server.
Decentralized version control systems are more efficient and offer a more practical way of software development.
In this session, Indy takes you through the considerations in moving from Subversion to Git, a decentralized version control system. You also get to understand the pros and cons of each and hear of the practical experience of migrating projects to decentralized version control.
Version control is often used in conjunction with a testing framework and continuous integration. To complete the picture, Indy walks you through how to integrate Git with a testing framework, MXUnit, and a continuous integration server, Hudson.
These slides are about my personal experience from creating a continuous delivery process in the last 2 years.
The main focus lies in the tools I used and my experience with them.
Production Ready WordPress - WC Utrecht 2017Edmund Turbin
This document discusses deploying code using version control and continuous integration. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. The solution involves setting up continuous integration where multiple developers can share code and have automated builds and testing on each push. A workflow is proposed where code is developed locally, stored in a central version control repository, built through continuous integration pipelines, and deployed to servers. Tools like Composer, NPM, Gulp and Assertible are demonstrated in an example deployment script for automated testing and deployment.
Jenkins to Gitlab - Intelligent Build-PipelinesChristian Münch
At netz98 we moved from Jenkins to Gitlab. The slides show some insides about Testing of PHP libraries, Magento 1 and Magento 2 modules. How to setup a scalable and fast Gitlab-Pipeline with Docker images.
This document discusses using version control and continuous integration to deploy code. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. The continuous integration workflow involves multiple developers sharing code through a central version control repository. Each code push is verified by automated builds to avoid integration issues and catch problems early. The document provides an example deployment script for Codeship that checks out code, installs dependencies, builds assets, commits changes, and pushes to the production remote. It also discusses testing deployments using Assertible and lessons learned around caching packages, installing dependencies, and using forceful Git pushes for deployment.
This document discusses deploying code using version control and continuous integration. It recommends developing code locally, using distributed version control like Git, and deploying to a testing environment before production. Continuous integration helps multiple developers share code by automatically verifying each code push. The workflow involves local development, a central version control repository, continuous integration pipelines to build and test code, and deploying builds to servers. Initial setup involves cloning repositories, installing applications, and configuring environments. The script provided automates deploying code from Codeship to a Git repository, running Composer to install dependencies, committing changes, and running post-deployment tests with Assertible.
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
In diesem Talk beschreibe ich die Continuous Integartion Pipeline von punkt.de und deren Entstehen. Es wird motiviert, warum es sich lohnt, eine solche Pipeline zu implementieren und welche Tools wir dafür verwendet haben. Neben der Beschreibung von Git, Jenkins, Chef, Vagrant, Behat und Surf geht es auch um Integration der einzelnen Tools in eine Deployment Kette.
Make It Cooler: Using Decentralized Version Controlindiver
A commonly used version control system in the ColdFusion community is Subversion -- a centralized system that relies on being connected to a central server. The next generation version control systems are “decentralized”, in that version control tasks do not rely on a central server.
Decentralized version control systems are more efficient and offer a more practical way of software development.
In this session, Indy takes you through the considerations in moving from Subversion to Git, a decentralized version control system. You also get to understand the pros and cons of each and hear of the practical experience of migrating projects to decentralized version control.
Version control is often used in conjunction with a testing framework and continuous integration. To complete the picture, Indy walks you through how to integrate Git with a testing framework, MXUnit, and a continuous integration server, Hudson.
dotnetsheff: Continuous delivery with Team City and Octopus DeployKevin Kuszyk
This document discusses continuous delivery and deployment using Team City and Octopus Deploy. It defines continuous delivery as allowing deployment to production with a single button press through automation. Continuous deployment completely automates putting code changes into production without human intervention. It presents the continuous delivery pipeline of code, build, test, pack, and deploy and shows how Team City and Octopus Deploy can be used together in this process.
Continuous Delivery with Jenkins declarative pipeline XPDays-2018-12-08Борис Зора
When you start your journey with µServices, you should be confident with your delivery lifecycle. In case of mistake, you should be able to navigate to appropriate tag in vcs to reproduce the bug with a test & go though pipeline within 3 hours to production with high confidence of quality.
We will discuss set of tools that could help you to achieve this within 3 months on your project. It does not include system decoupling suggestions. And in the same time, if you decide to break down monolith, it is better to do with dev & devOps best practices.
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 Tikal Knowledge
This document discusses using Jenkins for continuous integration (CI) and continuous delivery (CD) of .NET open source projects. It covers how to achieve CI using Jenkins by automating builds, testing on each commit, and more. It also discusses using NuGet for dependency management and Sonar for code quality analysis. Finally, it provides examples of using Jenkins to deploy builds to platforms like AWS Elastic Beanstalk for CD after builds pass testing.
This document summarizes a presentation about continuous integration and continuous delivery for Magento projects. It introduces the speaker and defines continuous integration as merging code into a shared repository multiple times per day, verified by automated builds. Continuous delivery is described as producing software in short cycles to allow reliable releases at any time. The presentation provides tips for setting up Jenkins and Phing to implement continuous integration and continuous delivery workflows for Magento, including build triggers, steps, and deployment.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
Continuous delivery is the process of automating the deployment of code changes to production. It involves building, testing, and deploying code changes through successive environments like integration, testing, and production. Continuous integration starts the process by automatically building and testing code changes. The release pipeline then automates deploying through environments. This finds issues early and allows for rapid deployment of code changes to production through automated testing and infrastructure provisioning.
Michigan IT Symposium 2017 - CI/CD Workflow TutorialJeffrey Sica
When developing custom applications the cloud gives developers tools for better testing and automated upgrades. This environment lends itself to the benefits of a Continuous Integration/Continuous Deployment (CI/CD) pipeline. By building tests and deployment scripts up front, rather than an afterthought, we can greatly minimize IT effort when making code changes.
This tutorial aims to provide foundational knowledge on the CI/CD mindset and give practical experience using one solution (Gitlab CI). The concepts and experience provided will be applicable to other build systems such as Jenkins or TravisCI.
Flash Camp Chennai - Build automation of Flex and AIR applicationsRIA RUI Society
Complete session on how to set up a continuous integration server for compiling and deploying Flex, Flash and AIR applications. The build process also include code quality check, code duplication check, compiler warning reporting, TODO and FIXME list reporting, and Unit testing.
Continuous Testing helps provide process improvements that can prevent future defects from occurring. It plays an important role in providing continuous feedback for your software.
Get introduced to the new ASP.NET 5. This stack stack that will change the way you build modern web apps! The next generation ASP.NET gives us a much needed modern framework for web and cloud. It is built from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. A significant redesign, full open source and available on GitHub, ASP.NET 5 uses cloud-optimized version, that is enhanced for server scenarios like low-memory and high-throughput. Get to know the all new powerful ASP.NET 5 through our webinar.
We would encourage you to go through the live Demo. Write back to us at jghosh@suyati.com for any queries.
Suyati Technologies Pvt Ltd.
2nd Floor, B-Wing, Thapasya building, Infopark, Kakkanad
Kochi 682030, Kakkanad, Kerala 682030
The document discusses using Jenkins and Reviewboard together to enable pre-tested commits. Developers can post code reviews to Reviewboard, which will then trigger a Jenkins job. The Jenkins job retrieves the code diff from Reviewboard, applies it, and runs tests and validation. Jenkins then posts the results as a comment back to Reviewboard. This allows developers to test and validate their code changes before peer review and committing to the main branch. The presentation includes details on the tools used, the typical workflow, and an architecture diagram of how Jenkins and Reviewboard integrate for pre-tested commits. It concludes with a demo of the process.
Integrating automated testing tools and concepts into pipelines.
1. Coded UI is used for UI testing and Postman + Newman for API testing of a license manager application. Tests are run in parallel on different browsers in the pipeline after deployment.
2. An existing testing framework uses Selenium for UI testing a web application. Tests are structured using page objects and run on Jenkins.
3. Tools and strategies discussed include Page Object Model, test frameworks, test environments, and communication during collaboration on testing. The goal is faster, more reliable releases through prioritized, efficient automated testing.
This document discusses Jenkins-CI, an open source tool for continuous integration and continuous delivery. It provides an overview of Jenkins-CI capabilities including building and testing software projects continuously, integrating changes, and continuously delivering software. The document also demonstrates Jenkins-CI in action with a live demo and discusses configuring Jenkins jobs, managing Jenkins, and requirements for deployment beyond Jenkins-CI like standardization, workflow, monitoring, and high availability.
Demo of how to dockerise and deploy your microservices application to the test environment, how to run selenium tests inside docker and how to put this all together to integrate your tests in your CI/CD pipeline using Jenkins.
Presented at ATA GTR 2016 in Pune.
Improve Development Process with Open Source Softwareelliando dias
The document discusses how to improve the software development process using open source tools like Selenium and CruiseControl. Selenium is demonstrated as a tool for automating web application testing. CruiseControl is described as a continuous integration tool that runs builds and tests after each code commit to provide near-immediate feedback. The benefits of these automated testing and continuous integration tools include finding problems early, encouraging good testing habits, and supporting faster development and release cycles.
Docker в последняя время набрал огромную популярность как инструмент разработчиков и DevOps-специалистов, но все ещё не так активно используется для автоматизированного тестирования. Во время воркшопа я поделюсь несколькими сценариями, когда Docker может помочь автоматизировать то что ранее считалось непригодным к автоматизации. Также, мы попробуем создать свой собственный образ и запустить несколько контейнеров используя docker-compose.
Integration Testing as Validation and MonitoringMelissa Benua
In the world of software-as-a-service, just about anyone with a laptop and an Internet connection can spin up their very own cloud-based web service. Software startups, in particular, are often big on ideas but small on staff. This makes streamlining the traditional develop-test-integrate-deploy-monitor pipeline critically important. Melissa Benua says that an effective way to accomplish this is to reduce the number of different test suites that verify many of the same things for each stage. Melissa explains how teams can avoid this by authoring the right set of tests and using the right frameworks. Drawing on lessons learned in companies both large and small, Melissa shows how teams can drastically slash time spent developing automation, verifying builds for release, and monitoring code in production—without sacrificing availability or reliability.
dotnetsheff: Continuous delivery with Team City and Octopus DeployKevin Kuszyk
This document discusses continuous delivery and deployment using Team City and Octopus Deploy. It defines continuous delivery as allowing deployment to production with a single button press through automation. Continuous deployment completely automates putting code changes into production without human intervention. It presents the continuous delivery pipeline of code, build, test, pack, and deploy and shows how Team City and Octopus Deploy can be used together in this process.
Continuous Delivery with Jenkins declarative pipeline XPDays-2018-12-08Борис Зора
When you start your journey with µServices, you should be confident with your delivery lifecycle. In case of mistake, you should be able to navigate to appropriate tag in vcs to reproduce the bug with a test & go though pipeline within 3 hours to production with high confidence of quality.
We will discuss set of tools that could help you to achieve this within 3 months on your project. It does not include system decoupling suggestions. And in the same time, if you decide to break down monolith, it is better to do with dev & devOps best practices.
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 Tikal Knowledge
This document discusses using Jenkins for continuous integration (CI) and continuous delivery (CD) of .NET open source projects. It covers how to achieve CI using Jenkins by automating builds, testing on each commit, and more. It also discusses using NuGet for dependency management and Sonar for code quality analysis. Finally, it provides examples of using Jenkins to deploy builds to platforms like AWS Elastic Beanstalk for CD after builds pass testing.
This document summarizes a presentation about continuous integration and continuous delivery for Magento projects. It introduces the speaker and defines continuous integration as merging code into a shared repository multiple times per day, verified by automated builds. Continuous delivery is described as producing software in short cycles to allow reliable releases at any time. The presentation provides tips for setting up Jenkins and Phing to implement continuous integration and continuous delivery workflows for Magento, including build triggers, steps, and deployment.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
Continuous delivery is the process of automating the deployment of code changes to production. It involves building, testing, and deploying code changes through successive environments like integration, testing, and production. Continuous integration starts the process by automatically building and testing code changes. The release pipeline then automates deploying through environments. This finds issues early and allows for rapid deployment of code changes to production through automated testing and infrastructure provisioning.
Michigan IT Symposium 2017 - CI/CD Workflow TutorialJeffrey Sica
When developing custom applications the cloud gives developers tools for better testing and automated upgrades. This environment lends itself to the benefits of a Continuous Integration/Continuous Deployment (CI/CD) pipeline. By building tests and deployment scripts up front, rather than an afterthought, we can greatly minimize IT effort when making code changes.
This tutorial aims to provide foundational knowledge on the CI/CD mindset and give practical experience using one solution (Gitlab CI). The concepts and experience provided will be applicable to other build systems such as Jenkins or TravisCI.
Flash Camp Chennai - Build automation of Flex and AIR applicationsRIA RUI Society
Complete session on how to set up a continuous integration server for compiling and deploying Flex, Flash and AIR applications. The build process also include code quality check, code duplication check, compiler warning reporting, TODO and FIXME list reporting, and Unit testing.
Continuous Testing helps provide process improvements that can prevent future defects from occurring. It plays an important role in providing continuous feedback for your software.
Get introduced to the new ASP.NET 5. This stack stack that will change the way you build modern web apps! The next generation ASP.NET gives us a much needed modern framework for web and cloud. It is built from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. A significant redesign, full open source and available on GitHub, ASP.NET 5 uses cloud-optimized version, that is enhanced for server scenarios like low-memory and high-throughput. Get to know the all new powerful ASP.NET 5 through our webinar.
We would encourage you to go through the live Demo. Write back to us at jghosh@suyati.com for any queries.
Suyati Technologies Pvt Ltd.
2nd Floor, B-Wing, Thapasya building, Infopark, Kakkanad
Kochi 682030, Kakkanad, Kerala 682030
The document discusses using Jenkins and Reviewboard together to enable pre-tested commits. Developers can post code reviews to Reviewboard, which will then trigger a Jenkins job. The Jenkins job retrieves the code diff from Reviewboard, applies it, and runs tests and validation. Jenkins then posts the results as a comment back to Reviewboard. This allows developers to test and validate their code changes before peer review and committing to the main branch. The presentation includes details on the tools used, the typical workflow, and an architecture diagram of how Jenkins and Reviewboard integrate for pre-tested commits. It concludes with a demo of the process.
Integrating automated testing tools and concepts into pipelines.
1. Coded UI is used for UI testing and Postman + Newman for API testing of a license manager application. Tests are run in parallel on different browsers in the pipeline after deployment.
2. An existing testing framework uses Selenium for UI testing a web application. Tests are structured using page objects and run on Jenkins.
3. Tools and strategies discussed include Page Object Model, test frameworks, test environments, and communication during collaboration on testing. The goal is faster, more reliable releases through prioritized, efficient automated testing.
This document discusses Jenkins-CI, an open source tool for continuous integration and continuous delivery. It provides an overview of Jenkins-CI capabilities including building and testing software projects continuously, integrating changes, and continuously delivering software. The document also demonstrates Jenkins-CI in action with a live demo and discusses configuring Jenkins jobs, managing Jenkins, and requirements for deployment beyond Jenkins-CI like standardization, workflow, monitoring, and high availability.
Demo of how to dockerise and deploy your microservices application to the test environment, how to run selenium tests inside docker and how to put this all together to integrate your tests in your CI/CD pipeline using Jenkins.
Presented at ATA GTR 2016 in Pune.
Improve Development Process with Open Source Softwareelliando dias
The document discusses how to improve the software development process using open source tools like Selenium and CruiseControl. Selenium is demonstrated as a tool for automating web application testing. CruiseControl is described as a continuous integration tool that runs builds and tests after each code commit to provide near-immediate feedback. The benefits of these automated testing and continuous integration tools include finding problems early, encouraging good testing habits, and supporting faster development and release cycles.
Docker в последняя время набрал огромную популярность как инструмент разработчиков и DevOps-специалистов, но все ещё не так активно используется для автоматизированного тестирования. Во время воркшопа я поделюсь несколькими сценариями, когда Docker может помочь автоматизировать то что ранее считалось непригодным к автоматизации. Также, мы попробуем создать свой собственный образ и запустить несколько контейнеров используя docker-compose.
Integration Testing as Validation and MonitoringMelissa Benua
In the world of software-as-a-service, just about anyone with a laptop and an Internet connection can spin up their very own cloud-based web service. Software startups, in particular, are often big on ideas but small on staff. This makes streamlining the traditional develop-test-integrate-deploy-monitor pipeline critically important. Melissa Benua says that an effective way to accomplish this is to reduce the number of different test suites that verify many of the same things for each stage. Melissa explains how teams can avoid this by authoring the right set of tests and using the right frameworks. Drawing on lessons learned in companies both large and small, Melissa shows how teams can drastically slash time spent developing automation, verifying builds for release, and monitoring code in production—without sacrificing availability or reliability.
TDD-based workflow: Optimizing Development ProcessAkbar Hidayat
This document discusses test-driven development (TDD) workflows and principles. It emphasizes that TDD requires understanding the system architecture first before writing tests. Behavior-driven development (BDD) bridges technical and business needs by focusing on user stories. Clean architecture and domain-driven design help break down a project into user stories, scenarios, and architecture decisions before writing tests. Tests provide feedback on design quality and help ensure correct and maintainable code.
This presentation was created as part of internal conference at Clarice Technologies. It talks about the need to revise our design workflow in order to realise the true potential of responsive design. Several case-studies are presented to show alternative workflows that people have tried.
All rights to this material belong to Clarice Technologies.
This document provides instructions for analyzing APK files using various tools, including apktool to decompile and recompile APKs, signapk to sign APKs, IDA for static analysis, and memdump to dump process memory for dynamic analysis. It also notes that the next steps would be to analyze the smali code and perform native library analysis and ARM assembly code.
This document discusses using the Silex micro-framework and Behat behavior-driven development tool for test-driven development. It describes:
1) Silex as a PHP micro-framework based on Symfony components and Behat for writing automated tests using human-readable stories.
2) The behavior-driven development process of writing automated tests, seeing them fail, writing code to pass the tests, and refactoring code.
3) How Behat uses Gherkin syntax to specify tests and convert them to unit tests.
The document discusses continuous delivery practices for front-end engineers. It outlines seven stages of a continuous delivery process: 1) efficiently reusing code through tools like NPM, Bower, and Yeoman, 2) test-driven development using Karma, Jasmine, Mocha and Protractor, 3) integrating continuously, 4) deploying often through automation to reduce risks, 5) monitoring performance and errors, 6) using feature toggles to deploy unfinished features, and 7) conducting A/B tests to gradually release new features. Moving from traditional waterfall to continuous delivery processes allows deploying from 4 times a year to 50 times a day and building a culture of continuous delivery.
React Native allows developers to build native mobile apps using JavaScript and React. While it provides benefits like using React for both web and mobile, allowing for code reuse, there are also challenges to using it in production. It is easy for web developers to use initially but documentation is poor and updates can cause breaking changes. Performance has not been an issue yet but native apps are generally faster. While the community is active, third party packages can introduce bugs and the build can sometimes break, especially on Android. Overall, React Native can be used for production apps if challenges around updates and crashes are addressed.
Unit testing with PHPUnit - there's life outside of TDDPaweł Michalik
Basics of PHPUnit and why is it even more relevant in legacy code. Key points of the framework are explained, along with mocking objects, test organisation, creating documentations with tests and accessing non-public objects (where applicable).
Live version with additional notes available at: http://pawelmichalik.net/presentations/unit-testing-with-phpunit?showNotes=true
Prezentacja dostępna także w języku polskim: http://pawelmichalik.net/prezentacje/testy-jednostkowe-w-phpunit?showNotes=true
Test your code like a pro - PHPUnit in practiceSebastian Marek
The day you realised that you can’t really tell what your code does is the day you stop being an amateur programmer and you turn into a professional developer. During this workshop you will learn about the most famous unit testing framework – PHPUnit, how it can help you gain confidence in your code and what to do (and what to avoid) to make your code testable. We will discuss unit testing best practices and talk about tools that can help you automate the whole process, so it becomes more of a habit then a necessity.
This document introduces test-driven development (TDD) and unit testing using PHPUnit. It discusses the benefits of unit testing, including reducing bugs, improving code design and documentation. It then demonstrates using TDD to build a simple calculator application, showing how to set up a PHP project with PHPUnit, write tests that initially fail and then pass as code is added, and refactor code. The full source code for the calculator tests and class are provided.
The document discusses property-based testing and how it can be used to test code more effectively than example-based testing. It introduces the concepts of testing properties like commutativity, associativity, and identity to specify requirements at a deeper level. QuickCheck is presented as a tool that generates random test values to check properties, finding bugs more quickly than testing by hand. JUnit Quickcheck and JSVerify are given as libraries for implementing property tests in Java and JavaScript. Potential applications of property testing like testing SDKs and data processing frameworks are outlined.
How to create quality code in WordPress plugins and themes using static code analysis, automatic unit testing, E2E testing, TravisCI\Jenkins and other tools.
В продолжение темы непрерывной интеграции, Макс расскажет о своем подходе организации непрерывной интеграции и деплоймента в Symfony проектах. Рассказ включает следующие темы:
- Управления зависимостями
- Процесс и инструменты для сборки
- Сервера непрерывной интеграции и в частности Jenkins, плагины к нему, jobs
- Процесс разработки в git
- Процесс выгрузки релиза
- Миграция БД
- Откат релиза
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
This document discusses continuous integration and automated deployments for Symfony projects. It covers setting up dependencies with Composer, building projects with Phing, implementing continuous integration with Jenkins CI, and deploying projects using Capifony. While many aspects are covered in detail, such as build targets, plugins, and rollback procedures, it notes that the full implementation is not yet available online and will be released to GitHub in 1-2 months.
This document discusses continuous integration in a PHP context. Continuous integration is a software development practice where developers regularly merge their code changes into a central repository. This allows the integration of code changes to be tested and identified early if issues arise. The benefits are less time spent fixing bugs and integration issues. Tools mentioned that can help with continuous integration for PHP projects include PHPUnit, Selenium, PHPMD, PDepend, PHP_CodeSniffer, phpUnderControl, Xinc, Hudson and Bamboo. Regular integration and testing of all code changes is important for reducing project risks.
This document describes eBay's use of Fluo for continuous integration and deployment using OpenStack. Fluo provides a single interface for configuring, building, testing, and deploying code changes. It provisions instances on OpenStack to run tasks defined in a configuration file like running tests, building packages, and deploying code. Fluo replicates code, packages, and configuration management code across regions and datacenters. It supports common workflows from code review through integration testing, releases, and periodic jobs. Fluo aims to provide a fully automated and scalable continuous delivery system to deploy code changes to eBay's global infrastructure on OpenStack.
Continuous Integration is a software development practice where developers regularly merge their work into a central repository. This triggers an automated build and test of the code. If the build fails, developers are immediately notified. There are typically five stages of adopting Continuous Integration - from just committing code occasionally to triggering automated builds and tests with every commit and deploying to production. Jenkins is an open source tool that supports Continuous Integration. It allows developers to easily set up CI/CD pipelines with features like automated testing, code quality reporting, deployment to staging environments and more.
Continuous Integration is a software development practice where developers regularly merge their work into a central repository. When code is committed, an automated build is triggered to check that new code does not break the existing code base. There are typically five stages of adopting Continuous Integration: 1) a few manual commits and builds, 2) nightly automated builds, 3) builds triggered with every commit, 4) code quality metrics added to builds, 5) automated deployment to staging environments. Continuous Integration helps catch bugs early in the development process and ensures code quality.
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
The webinar covered tools and techniques used by several developers in their work with Domino and XPages. Howard Greenberg discussed using SourceTree and BitBucket for version control of XPages applications. Jesse Gallagher presented his toolchain including Eclipse, Maven, and Jenkins for plugin and application development. Serdar Basegmez outlined his development environment including configuring Eclipse to develop OSGi plugins for the Domino runtime. All emphasized the importance of source control, testing, and documentation in their processes.
This document outlines workflows and tools for managing Magento 2 development. It discusses challenges with scalable and complicated processes and assumptions of skill. Lessons learned include keeping developer freedom and code integrity while maintaining accountability. Recommended tools include Vagrant for simplified developer setups, PHPStorm for code completion and testing, Git for version control, and Composer for dependencies. The workflow uses separate modules in a Git repository structure with branches for different environments and deployment automation.
Topics of this presentation:
- Basics and best practices of developing single-page applications (SPA) and Web API Services on Microsoft .NET -
- Core with Docker and Linux.
- PowerShell Core automated builds.
- Markdown/PDF documentation.
- Documentation of public interfaces with Swagger/OAS/YAML.
- Automated testing of SPA on Protractor and testing the Web API on Postman/Newman.
This presentation by Sergii Fradkov (Consultant, Engineering), Andrii Zarharov (Lead Software Engineer, Consultant), Igor Magdich (Lead Test Engineer, Consultant) was delivered at GlobalLogic Kharkiv .NET TechTalk #1 on May 24, 2019.
Continuous integration is a practice where developers integrate code changes frequently from the main code repository. This allows for multiple integrations per day. An automated build is run on each check-in, including running tests to detect errors early. Hudson is a free continuous integration tool written in Java that runs builds, tests, and reports issues. It integrates with source control and build tools via plugins. Eclipse plugins can also be built with Hudson and Buckminster to automate their creation and publication.
Symfony2 for legacy app rejuvenation: the eZ Publish case studyGaetano Giunta
This document discusses the rejuvenation of the legacy eZPublish content management system through adoption of the Symfony full-stack framework. Key aspects of the migration included maintaining backwards compatibility, integrating the legacy codebase through a dual-core architecture, refactoring the front controller, integrating routing, adopting Symfony caching practices, building a REST API, using the Doctrine database abstraction layer, improving performance through caching, and replacing the legacy templating language with Twig. The migration aimed to balance maintaining the existing system functionality while modernizing the codebase and architecture.
Comment améliorer le quotidien des Développeurs PHP ?AFUP_Limoges
Conférence présentée lors du summer meetup de l'AFUP à Limoges le 19 juin 2018. Son objectif est de présenter plusieurs outils permettant de gagner rapidement en efficacité au quotidien.
This document provides an overview of Chef and its capabilities for infrastructure automation and deployment. It discusses how Chef works using infrastructure as code to define reusable resources and automate deployment. It also covers Chef's porting to Linux on POWER systems and partnership with IBM, including support for Chef on various IBM platforms. The document concludes with an advertisement for a demo of using Chef to automate application deployment on Linux on POWER.
The new buzz world in the world of Agile is "DevOps". So what exactly is devOps and Why do we need it? When development got married to deployment (sys-admin/operations) ; what is born is a new advanced species which is known to us today as "DevOps"
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
Presentation about open source tools to set up continuous integration and continuous deployment. Covers Git, Gitlab, Chef, Vagrant, Jenkins, Gatling, Dashing, TYPO3 Surf and some other tools. Shows some best practices for testing with Behat and Functional Testing.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
3. • Payment Service Provider
• iDEAL, Pay-per-call, Premium SMS, etc.
• SMS gateway
• HTTP API, SMPP, Email to SMS, etc.
• Located in Amsterdam, near Vondelpark
• Four developers
4. Codebase 1/2
• Main project: 250K LOC
• New code is pretty good, but...
• lots of code created around 2004
(when magic_quotes was cool)
5. Codebase 2/2
• Git as SCM
• Also:
• Plugins for OpenCart, Magento, WHCMS
• Example API classes
• Internal projects
8. Theory
In software engineering, continuous integration (CI)
implements continuous processes of applying quality control
— small pieces of effort, applied frequently. Continuous
integration aims to improve the quality of software, and to
reduce the time taken to deliver it, by replacing the
traditional practice of applying quality control after
completing all development. (source:Wikipedia)
10. Why is it useful? 1/2
• All tests are run after every commit.
• You always know if you can deploy after a
commit.
• You know who broke a test.
11. Why is it useful? 2/2
• You can get pretty graphs
• Provides trends
• Motivational for developers
• First step to deploying from SCM
• No more “works for me”.
35. Vagrant
• Create and configure
lightweight,
reproducible, and
portable development
environments.
• Works with
VirtualBox and Chef
36. Vagrant
• Allows you create VMs and deploy them
with software from a Chef recipe.
• Many open source Chef recipes available.
• https://github.com/fnichol/chef-jenkins
38. Chef recipe
%w{pdepend/PHP_Depend-beta phpmd/
PHP_PMD-alpha phpunit/phpcpd phpunit/
phploc phpunit/test_helpers
PHPDocumentor PHP_CodeSniffer
digitalsandwich/Phake phpunit/
PHP_CodeBrowser phpunit/PHPUnit}.each
do |pear_package|
php_pear pear_package do
options "--alldeps"
action :install
end
end
39. Install PHP specific stuff
• Jenkins PHP manual and templates provided
by Sebastian Bergmann.
• http://jenkins-php.org/
40. Tell Jenkins what to do
• Create build.xml
• Lives in your code
• Create a Job in Jenkins
• Point to your SCM
41.
42. Configure Jenkins
• After running build.xml, lots of XML files
are generated.
• You can install plugins in Jenkins which
understand these XML files
• Configure Jenkins plugins to read these files
and “publish” them.
• Optionally: do some stuff after build
succeeds.
47. Don’t run more than
you need
• Consider if you want to wait every build on
phpmd, pdepend etc.
• Alternatively: clone your job and run tests
only in one job and analysis in other job.
48. Use SCM tags
• Jenkins can push tags to your SCM if a build
succeeds
• Combined with tags on deploy very
convenient
49. Make sure production
& Jenkins are identical
• Different platforms? --> Bugs.
• Different PHP versions? --> Bugs.
• Different MySQL versions? --> Bugs.