Skip to content

Commit

Permalink
Merge pull request #8 from wireapp/staging
Browse files Browse the repository at this point in the history
Release on new pipelines
  • Loading branch information
LukasForst authored Nov 19, 2020
2 parents 75a55e3 + 9cbcc57 commit 8e5b3de
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 97 deletions.
21 changes: 14 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
check:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

Expand All @@ -34,16 +34,23 @@ jobs:
if: failure()

docker-build:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Build docker image
uses: docker/build-push-action@v1
# setup docker actions https://github.com/docker/build-push-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Build image
id: docker_build
uses: docker/build-push-action@v2
with:
# login to repo
repository: wire/ci-test-image
# do not push image
# https://github.com/docker/build-push-action/issues/220
context: .
tags: wire/ci-test-image
push: false

# Send webhook to Wire using Slack Bot
Expand Down
50 changes: 0 additions & 50 deletions .github/workflows/master.yml

This file was deleted.

50 changes: 31 additions & 19 deletions .github/workflows/prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,44 @@ env:
jobs:
deploy:
name: Build and deploy service
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Set Release Version
# use latest tag as release version
run: echo ::set-env name=RELEASE_VERSION::${GITHUB_REF:10}
run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV

- name: Build and publish docker image
uses: docker/build-push-action@v1
# extract metadata for labels https://github.com/crazy-max/ghaction-docker-meta
- name: Docker meta
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v1
with:
images: eu.gcr.io/${{ env.DOCKER_IMAGE }}

# setup docker actions https://github.com/docker/build-push-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
# login to GCR repo
- name: Login to DockerHub
uses: docker/login-action@v1
with:
# set docker image
repository: ${{ env.DOCKER_IMAGE }}
# use GCR repository
registry: eu.gcr.io
# see https://github.com/marketplace/actions/docker-build-push#google-container-registry-gcr
username: _json_key
password: ${{ secrets.GCR_ACCESS_JSON }}
# pass release_version
build_args: release_version=${{ env.RELEASE_VERSION }}
# tag the image with latest git tag
tag_with_ref: true
# add labels based on the build - see https://github.com/opencontainers/image-spec/blob/master/annotations.md
add_git_labels: true
# push only if this is tagged release

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
# push only if this is indeed a taged release
push: ${{ startsWith(github.ref, 'refs/tags/') }}
build-args: |
release_version=${{ env.RELEASE_VERSION }}
# Checkout our Kubernetes configuration
- name: Checkout Rubicon
Expand Down Expand Up @@ -66,13 +78,13 @@ jobs:
rm "$SERVICE.yaml.bak"
# Setup gcloud CLI
- name: Setup Google Cloud CLI
uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@master
with:
version: '286.0.0'
service_account_email: [email protected]
service_account_key: ${{ secrets.GKE_SA_KEY }}
project_id: wire-bot
export_default_credentials: true

# Configure Docker to use the gcloud command-line tool
- name: Configure Docker Google cloud
Expand All @@ -96,7 +108,7 @@ jobs:
# Commit all data to Rubicon and open PR
- name: Create Rubicon Pull Request
uses: peter-evans/create-pull-request@v2
uses: peter-evans/create-pull-request@v3
with:
path: rubicon
branch: ${{ env.SERVICE_NAME }}-release
Expand Down
49 changes: 30 additions & 19 deletions .github/workflows/staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,41 +12,52 @@ env:
jobs:
publish:
name: Deploy to staging
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

# use latest tag as release version in the docker container
- name: Set Release Version
# use latest tag as release version
run: echo ::set-env name=RELEASE_VERSION::${GITHUB_SHA}
run: echo "RELEASE_VERSION=${GITHUB_SHA}" >> $GITHUB_ENV

- name: Build docker image, push
uses: docker/build-push-action@v1
# extract metadata for labels https://github.com/crazy-max/ghaction-docker-meta
- name: Docker meta
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v1
with:
images: eu.gcr.io/${{ env.DOCKER_IMAGE }}

# setup docker actions https://github.com/docker/build-push-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
# login to GCR repo
- name: Login to DockerHub
uses: docker/login-action@v1
with:
# set docker image
repository: ${{ env.DOCKER_IMAGE }}
# use GCR repository
registry: eu.gcr.io
# see https://github.com/marketplace/actions/docker-build-push#google-container-registry-gcr
username: _json_key
password: ${{ secrets.GCR_ACCESS_JSON }}
# pass release_version
build_args: release_version=${{ env.RELEASE_VERSION }}
# tag the image with name of the branch - staging
tag_with_ref: true
# add labels based on the build - see https://github.com/opencontainers/image-spec/blob/master/annotations.md
add_git_labels: true
# push

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
push: true
build-args: |
release_version=${{ env.RELEASE_VERSION }}
# Setup gcloud CLI
- name: Setup Google Cloud CLI
uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@master
with:
version: '286.0.0'
service_account_email: [email protected]
service_account_key: ${{ secrets.GKE_SA_KEY }}
project_id: wire-bot
export_default_credentials: true

# Configure Docker to use the gcloud command-line tool
- name: Configure Docker Google cloud
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Wire Poll Bot
[![GitHub version](https://badge.fury.io/gh/wireapp%2Fpoll-bot.svg)](https://badge.fury.io/gh/wireapp%2Fpoll-bot)
![CI](https://github.com/wireapp/poll-bot/workflows/CI/badge.svg)
![Test pipeline](https://github.com/wireapp/poll-bot/workflows/Test%20pipeline/badge.svg)
![Docker Latest build](https://github.com/wireapp/poll-bot/workflows/Docker%20Latest%20build/badge.svg)
![Staging Deployment](https://github.com/wireapp/poll-bot/workflows/Staging%20Deployment/badge.svg)
![Release Pipeline](https://github.com/wireapp/poll-bot/workflows/Release%20Pipeline/badge.svg)
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

0 comments on commit 8e5b3de

Please sign in to comment.