Welcome to the Easel AI's Fullstack Engineering Task for creating a Continuous Integration and Deployment (CI/CD) pipeline for an iOS development project.
Since we're still a very young company, we would like you to showcase how to bring up some very fundamental services from scratch.
As a backend/fullstack engineer, you are tasked with creating an example iPhone project and implementing tests for the code. You will also create a CI/CD pipeline that supports the following features upon pushing a new commit to the Github repository:
- Run a linter on the project code and report any linting errors.
- Verify that the project file compiles and report any errors.
- Run tests implemented in the project, and report any failed tests.
- Fork this repository into your own Github account to access the necessary features.
- Use any tooling that you believe will best accomplish the job.
- Upload the result of a successful build to Appstore Connect.
- Set up an automated release process that deploys the build to a staging environment or test users.
- Implement a hook that posts a Slack message about the successful upload.
- A Github repository with the example iPhone project, tests, and CI/CD pipeline.
- A README file with instructions on how to set up and run the pipeline, including any necessary configuration or secrets.
- A brief explanation of the tools and technologies used, along with any challenges or lessons learned during the development process.