やりたいこと
- (目標)URLを叩くと、PULLして、Firebase deployする
Dockerfile
FROM jenkins
USER root
RUN cd tmp/ \
&& wget https://updates.jenkins-ci.org/latest/jenkins.war \
&& mv ./jenkins.war /usr/share/jenkins/
USER jenkins
docker-compose.yml
version: "3"
services:
jenkins:
build: .
ports:
- 8080:8080
volumes:
- ./jenkins_home:/var/jenkins_home
Dockerコマンドで構築
docker-compose up
http://localhost:8080/
Jenkinsはこれで、構築完了。
空のジョブを一つ作成して、実行しておけば、workspaceができる。
このworkspaceでpullできるように構築する。
保存
ビルド実行
Nuxtアプリをビルドしてデプロイできる環境を構築
# ログイン
docker-compose exec jenkins bash
# sshキーの作成
ssh-keygen
ls ~/.ssh
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub # これをバックログのSSH公開鍵に設定
# NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
source /root/.bashrc
nvm install stable
# sudoコマンドインストール
apt update
apt-get -qq update
apt install -y sudo
apt-get install build-essential
# ジョブのディレクトリに移動
cd "var/jenkins_home/workspace/My Job"
git clone バックログのSSHのURL
# Nuxtのビルド
npm run i && npm run generate
# firebaseコマンドのインストール
curl -sL https://firebase.tools | bash
firebase login --no-localhost
# firebase loginはトークンを画面コピーしてターミナルに貼れば認証される
これで、NuxtプロジェクトがビルドできていればOK!
Jenkinsの設定
ビルドトリガーはURLを叩くと、このジョブが走る設定です。
画面の例だと、
http://localhost:8080/job/amazing-master/build?token=testtesttest
これで、このバッチが動きます。
#Jenkinsシェルの実行
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
cd "My Job"
git pull origin master
npm i && npm run generate
firebase deploy
- npmコマンドの設定
- git pull
- nuxt generate
- firebase deploy
を設定
これで、、、
http://localhost:8080/job/amazing-master/build?token=testtesttest
を叩いて、デプロイできれば成功です。