diff --git a/.semaphore/pipeline_2.yml b/.semaphore/pipeline_2.yml new file mode 100644 index 0000000..21da1b0 --- /dev/null +++ b/.semaphore/pipeline_2.yml @@ -0,0 +1,22 @@ +version: v1.0 +name: Deploy Release Candidate +agent: + machine: + type: e1-standard-2 + os_image: ubuntu2004 +blocks: + - name: RC Build + task: + jobs: + - name: Build and Push + commands: + - checkout + - git submodule update --init --recursive + - 'docker pull $DOCKER_USERNAME/cloud9-ide-vdi:latest || true' + - 'docker build --cache-from=$DOCKER_USERNAME/cloud9-ide-vdi:latest -t devindice/cloud9-ide-vdi .' + - '# Login to Dockerhub' + - 'echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin' + - '# Create a version' + - 'docker push $DOCKER_USERNAME/cloud9-ide-vdi:testing' + secrets: + - name: Dockerhub diff --git a/.semaphore/pipeline_3.yml b/.semaphore/pipeline_3.yml new file mode 100644 index 0000000..e4c8889 --- /dev/null +++ b/.semaphore/pipeline_3.yml @@ -0,0 +1,26 @@ +version: v1.0 +name: Deploy Production +agent: + machine: + type: e1-standard-2 + os_image: ubuntu2004 +blocks: + - name: Production Build + task: + jobs: + - name: Tag and Push + commands: + - checkout + - git submodule update --init --recursive + - DATE=$(date +%y%U%u) + - 'VERSION="${DATE}"' + - 'docker pull $DOCKER_USERNAME/cloud9-ide-vdi:latest || true' + - 'docker build --cache-from=$DOCKER_USERNAME/cloud9-ide-vdi:latest -t devindice/cloud9-ide-vdi .' + - '# Login to Dockerhub' + - 'echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin' + - '# Create a version' + - 'docker image tag devindice/cloud9-ide-vdi:latest devindice/cloud9-ide-vdi:$VERSION' + - 'docker push $DOCKER_USERNAME/cloud9-ide-vdi:$VERSION' + - 'docker push $DOCKER_USERNAME/cloud9-ide-vdi:latest' + secrets: + - name: Dockerhub diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml new file mode 100644 index 0000000..a50ef42 --- /dev/null +++ b/.semaphore/semaphore.yml @@ -0,0 +1,24 @@ +version: v1.0 +name: Initial Pipeline +agent: + machine: + type: e1-standard-2 + os_image: ubuntu2004 +blocks: + - name: Setup + task: + jobs: + - name: Checkout + commands: + - checkout + secrets: + - name: Dockerhub +promotions: + - name: Deploy Release Candidate + pipeline_file: pipeline_2.yml + auto_promote: + when: branch = 'release' AND result = 'passed' + - name: Deploy Production + pipeline_file: pipeline_3.yml + auto_promote: + when: branch = 'master' AND result = 'passed'