Merge branch 'docs-ci-examples-devops_and_game_dev_with_gitlab_ci_cd' into 'master'
Update 'DevOps and Game Dev with GitLab CI/CD' doc See merge request gitlab-org/gitlab-ce!25944
This commit is contained in:
commit
69c328a3ef
1 changed files with 9 additions and 9 deletions
|
@ -4,7 +4,7 @@ author_gitlab: blitzgren
|
||||||
level: intermediate
|
level: intermediate
|
||||||
article_type: tutorial
|
article_type: tutorial
|
||||||
date: 2018-03-07
|
date: 2018-03-07
|
||||||
last_updated: 2019-03-06
|
last_updated: 2019-03-11
|
||||||
---
|
---
|
||||||
|
|
||||||
# DevOps and Game Dev with GitLab CI/CD
|
# DevOps and Game Dev with GitLab CI/CD
|
||||||
|
@ -21,7 +21,7 @@ and the basics of game development.
|
||||||
|
|
||||||
Our [demo game](http://gitlab-game-demo.s3-website-us-east-1.amazonaws.com/) consists of a simple spaceship traveling in space that shoots by clicking the mouse in a given direction.
|
Our [demo game](http://gitlab-game-demo.s3-website-us-east-1.amazonaws.com/) consists of a simple spaceship traveling in space that shoots by clicking the mouse in a given direction.
|
||||||
|
|
||||||
Creating a strong CI/CD pipeline at the beginning of developing another game, [Dark Nova](http://darknova.io/about),
|
Creating a strong CI/CD pipeline at the beginning of developing another game, [Dark Nova](http://darknova.io/),
|
||||||
was essential for the fast pace the team worked at. This tutorial will build upon my
|
was essential for the fast pace the team worked at. This tutorial will build upon my
|
||||||
[previous introductory article](https://ryanhallcs.wordpress.com/2017/03/15/devops-and-game-dev/) and go through the following steps:
|
[previous introductory article](https://ryanhallcs.wordpress.com/2017/03/15/devops-and-game-dev/) and go through the following steps:
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ This will also provide
|
||||||
boilerplate code for starting a browser-based game with the following components:
|
boilerplate code for starting a browser-based game with the following components:
|
||||||
|
|
||||||
- Written in [Typescript](https://www.typescriptlang.org/) and [PhaserJs](https://phaser.io)
|
- Written in [Typescript](https://www.typescriptlang.org/) and [PhaserJs](https://phaser.io)
|
||||||
- Building, running, and testing with [Gulp](http://gulpjs.com/)
|
- Building, running, and testing with [Gulp](https://gulpjs.com)
|
||||||
- Unit tests with [Chai](http://chaijs.com/) and [Mocha](https://mochajs.org/)
|
- Unit tests with [Chai](https://www.chaijs.com) and [Mocha](https://mochajs.org/)
|
||||||
- CI/CD with GitLab
|
- CI/CD with GitLab
|
||||||
- Hosting the codebase on GitLab.com
|
- Hosting the codebase on GitLab.com
|
||||||
- Hosting the game on AWS
|
- Hosting the game on AWS
|
||||||
|
@ -318,7 +318,7 @@ allowing us to run our tests by every push.
|
||||||
Our entire `.gitlab-ci.yml` file should now look like this:
|
Our entire `.gitlab-ci.yml` file should now look like this:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
image: node:6
|
image: node:10
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
@ -413,7 +413,7 @@ use root security credentials. Proper IAM credential management is beyond the sc
|
||||||
article, but AWS will remind you that using root credentials is unadvised and against their
|
article, but AWS will remind you that using root credentials is unadvised and against their
|
||||||
best practices, as they should. Feel free to follow best practices and use a custom IAM user's
|
best practices, as they should. Feel free to follow best practices and use a custom IAM user's
|
||||||
credentials, which will be the same two credentials (Key ID and Secret). It's a good idea to
|
credentials, which will be the same two credentials (Key ID and Secret). It's a good idea to
|
||||||
fully understand [IAM Best Practices in AWS](http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). We need to add these credentials to GitLab:
|
fully understand [IAM Best Practices in AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). We need to add these credentials to GitLab:
|
||||||
|
|
||||||
1. Log into your AWS account and go to the [Security Credentials page](https://console.aws.amazon.com/iam/home#/security_credential)
|
1. Log into your AWS account and go to the [Security Credentials page](https://console.aws.amazon.com/iam/home#/security_credential)
|
||||||
1. Click the **Access Keys** section and **Create New Access Key**. Create the key and keep the id and secret around, you'll need them later
|
1. Click the **Access Keys** section and **Create New Access Key**. Create the key and keep the id and secret around, you'll need them later
|
||||||
|
@ -455,7 +455,7 @@ Be sure to update the region and S3 URL in that last script command to fit your
|
||||||
Our final configuration file `.gitlab-ci.yml` looks like:
|
Our final configuration file `.gitlab-ci.yml` looks like:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
image: node:6
|
image: node:10
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
@ -503,7 +503,7 @@ deploy:
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
Within the [demo repository](https://gitlab.com/blitzgren/gitlab-game-demo) you can also find a handful of boilerplate code to get
|
Within the [demo repository](https://gitlab.com/blitzgren/gitlab-game-demo) you can also find a handful of boilerplate code to get
|
||||||
[Typescript](https://www.typescriptlang.org/), [Mocha](https://mochajs.org/), [Gulp](http://gulpjs.com/) and [Phaser](https://phaser.io) all playing
|
[Typescript](https://www.typescriptlang.org/), [Mocha](https://mochajs.org/), [Gulp](https://gulpjs.com/) and [Phaser](https://phaser.io) all playing
|
||||||
together nicely with GitLab CI/CD, which is the result of lessons learned while making [Dark Nova](http://darknova.io/).
|
together nicely with GitLab CI/CD, which is the result of lessons learned while making [Dark Nova](http://darknova.io/).
|
||||||
Using a combination of free and open source software, we have a full CI/CD pipeline, a game foundation,
|
Using a combination of free and open source software, we have a full CI/CD pipeline, a game foundation,
|
||||||
and unit tests, all running and deployed at every push to master - with shockingly little code.
|
and unit tests, all running and deployed at every push to master - with shockingly little code.
|
||||||
|
@ -522,6 +522,6 @@ Here are some ideas to further investigate that can speed up or improve your pip
|
||||||
|
|
||||||
- [Yarn](https://yarnpkg.com) instead of npm
|
- [Yarn](https://yarnpkg.com) instead of npm
|
||||||
- Set up a custom [Docker](../../../ci/docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) image that can preload dependencies and tools (like AWS CLI)
|
- Set up a custom [Docker](../../../ci/docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) image that can preload dependencies and tools (like AWS CLI)
|
||||||
- Forward a [custom domain](http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html) to your game's S3 static website
|
- Forward a [custom domain](https:/docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html) to your game's S3 static website
|
||||||
- Combine jobs if you find it unnecessary for a small project
|
- Combine jobs if you find it unnecessary for a small project
|
||||||
- Avoid the queues and set up your own [custom GitLab CI/CD runner](https://about.gitlab.com/2016/03/01/gitlab-runner-with-docker/)
|
- Avoid the queues and set up your own [custom GitLab CI/CD runner](https://about.gitlab.com/2016/03/01/gitlab-runner-with-docker/)
|
||||||
|
|
Loading…
Reference in a new issue