From fa13da691606b867feec1c65ef9924bacf88d231 Mon Sep 17 00:00:00 2001 From: Randy Merrill Date: Wed, 12 Jan 2022 10:04:00 -0700 Subject: [PATCH] chore: Main branch deploys evergreen version of grow image. --- .../{release-please.yml => main.yml} | 102 ++++++++++++------ Dockerfile | 2 +- 2 files changed, 72 insertions(+), 32 deletions(-) rename .github/workflows/{release-please.yml => main.yml} (50%) diff --git a/.github/workflows/release-please.yml b/.github/workflows/main.yml similarity index 50% rename from .github/workflows/release-please.yml rename to .github/workflows/main.yml index aa95d005..1d3f4848 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/main.yml @@ -1,9 +1,65 @@ -name: 'Release Please' +name: 'Push to main' on: push: branches: - - main + - main jobs: + # Evergreen docker image build from main. + docker-image: + runs-on: ubuntu-latest + env: + GOOGLE_CLOUD_PROJECT: 'grow-prod' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.7" + - name: Install + run: | + pip3 install -U pip + pip3 install -U pipenv + pip3 install pyyaml -U --force + pipenv run pip3 install pip + pipenv install --dev + pipenv run pip3 install pyyaml -U --force + - name: Build UI assets + run: | + make build-ui + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Log in to the GitHub ontainer registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Log in to the Google container registry + uses: docker/login-action@v1 + with: + registry: gcr.io + username: _json_key + password: ${{ secrets.GCP_JSON_KEY }} + - name: Extract metadata (tags, labels) for Docker + uses: docker/metadata-action@v3 + id: meta + with: + images: | + grow/base + ghcr.io/${{ github.repository }} + gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base + - name: Push grow/base + uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: grow_version=git+https://github.com/grow/grow.git@main + + # Release please configuration for deployment. release-please: runs-on: ubuntu-latest env: @@ -47,17 +103,24 @@ jobs: TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} - if: ${{ steps.release.outputs.release_created }} name: Log in to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - if: ${{ steps.release.outputs.release_created }} - name: Log in to the Container registry - uses: docker/login-action@v2 + name: Log in to the GitHub ontainer registry + uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - if: ${{ steps.release.outputs.release_created }} + name: Log in to the Google container registry + uses: docker/login-action@v1 + with: + registry: gcr.io + username: _json_key + password: ${{ secrets.GCP_JSON_KEY }} - if: ${{ steps.release.outputs.release_created }} name: Extract metadata (tags, labels) for Docker uses: docker/metadata-action@v3 @@ -66,36 +129,13 @@ jobs: images: | grow/base ghcr.io/${{ github.repository }} + gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base - if: ${{ steps.release.outputs.release_created }} name: Push grow/base uses: docker/build-push-action@v2 with: context: . push: true - tags: ${{ steps.meta.outputs.tags }},grow/base:latest,grow/base:${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} + tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - build-args: grow_version=${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} - - if: ${{ steps.release.outputs.release_created }} - name: Setup gcloud - uses: google-github-actions/setup-gcloud@master - with: - service_account_key: ${{ secrets.GCP_SA_KEY }} - project_id: ${{ env.GOOGLE_CLOUD_PROJECT }} - - if: ${{ steps.release.outputs.release_created }} - run: gcloud auth configure-docker - - if: ${{ steps.release.outputs.release_created }} - run: | - docker build \ - --build-arg grow_version=${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:main \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:latest \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} \ - . - - if: ${{ steps.release.outputs.release_created }} - name: Push to GCR - run: | - docker push \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:main \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:latest \ - -t gcr.io/${{ env.GOOGLE_CLOUD_PROJECT }}/base:${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} \ - . + build-args: grow_version=grow==${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} diff --git a/Dockerfile b/Dockerfile index 9b285013..798a6830 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,7 +43,7 @@ ENV NVM_DIR=~/.nvm # Install Grow. RUN pip3 install --no-cache-dir --upgrade wheel \ - && pip3 install --no-cache-dir grow==$grow_version + && pip3 install --no-cache-dir $grow_version # Install ruby bundle. RUN gem install bundler