Code Monkey home page Code Monkey logo

cicd-firststart's Introduction

Introduction

This is a template for getting started with iOS development using GitLab and fastlane and firebase app distribution. This report dedicated to CI/CD concepts and how we can automate and simplify the deploy process!

Снимок экрана 2022-07-20 в 19 33 57

The content of the presentation:

What is CI/CD?

What is Continuous integration?

What is Continuous delivery?

What is Continuous deployment?

A deeper look into the CI/CD workflow

Comparison of deployment cycles

When to use ci/cd processes?

The top benefits of CI/CD for iOS

Best practices to remember for iOS CI/CD

Some Tips

Main advantages/disadvantages of CI/CD

Platform selection

Introducing the Fastlane automation tool

Introducing the basic features of Fastlane

GitLabCI teory/concepts

Pipeline Rules

Gitlab-runner set up

Step-by-step instructions for deploying ios app with gitlab-runner and Fastlane and uploading the app to FirebaseAppDistribution

Reference links

Getting started

You'll need a working MacOS development environment with XCode 10 to use this template. You can find instructions to get up and running on the Apple XCode website. You can find instructions to get up gitlab-runner on the report and offitial documentation.

What's contained in this project

-swift lint scripts

-fastlane scripts for process automation and distribution in firebase builds

-gitlab file containing steps and jobs to run with the local gitlab-runner.

Useful Links

PDF Report

Video Report

Enjoy! 😄

Step-by-step instructions for getting up simple pipline

Install gitlab-runner on mac:

brew install gitlab-runner

Making mac a CI runner:

gitlab-runner register

Launching the runner:

gitlab-runner install
gitlab-runner start

Status::

gitlab-runner status

Снимок экрана 2022-07-20 в 19 28 47

Configure gitlab-runner.yml:

Rules:

The file name should always be .gitlab-ci.yml with a dot at the beginning.

If you accidentally named the file incorrectly, then this file will not be recognized, and the runner will not execute the script.

This file must be created in the root folder of the project.

Tags are also defined in the .yml file. These tags correspond to the tags that were defined during the setup of the runners.

After calling the yml file, the runner with the same tag as specified in the yml file will take the job and execute it through the pipeline.

A pipeline is a set of tasks/stages defined in a yml file for execution.

Each task/stage defined in the yml file is a job.

A pipeline only succeeds if all the jobs associated with it succeed.

If at least one job fails, the pipeline will not throw an error message in the Gitlab console.

Снимок экрана 2022-07-20 в 19 29 10

Check pipline status:

Снимок экрана 2022-07-20 в 19 32 15

Developed By

  • Hrebinik Artem, CHI Software
  • Kosyi Vlad, CHI Software

License

Copyright 2022 CHI Software.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

cicd-firststart's People

Contributors

hrebinik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.