From e039fbdb567d5b08aee6949985904e0664ff5662 Mon Sep 17 00:00:00 2001 From: kixelated Date: Fri, 13 Oct 2023 10:47:10 +0900 Subject: [PATCH] Switch to a GCP registry. (#89) Unfortunately Cloud Run doesn't support the free/public Github registry. --- .github/workflows/check.yml | 36 ++++++------- .github/workflows/release.yml | 98 ++++++++++++++++------------------- 2 files changed, 60 insertions(+), 74 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index ee39e51..3996567 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -1,29 +1,23 @@ -name: Test & Lint - on: - pull_request: - branches: ["main"] + pull_request: + branches: ["main"] env: - CARGO_TERM_COLOR: always + CARGO_TERM_COLOR: always jobs: - check: - runs-on: ubuntu-latest + check: + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - - name: toolchain - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: - components: clippy, rustfmt + # Install Rust with clippy/rustfmt + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: clippy, rustfmt - - name: test - run: cargo test --verbose - - - name: clippy - run: cargo clippy - - - name: fmt - run: cargo fmt --check + # Make sure u guys don't write bad code + - run: cargo test --verbose + - run: cargo clippy --no-deps + - run: cargo fmt --check diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1181483..e5864da 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,64 +1,56 @@ -name: Release Docker Image - -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - on: - push: - branches: ["main"] - # Publish semver tags as releases. - tags: ["v*.*.*"] + push: + branches: ["main"] env: - # Use the free Github repository - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} + REGISTRY: us-central1-docker.pkg.dev + IMAGE: quic-video/deploy/moq-rs:latest + SERVICE: api # Restart the API service TODO and relays jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - id-token: write + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write - # Only one release at a time and cancel prior releases - concurrency: - group: release - cancel-in-progress: true + # Only one release at a time and cancel prior releases + concurrency: + group: release + cancel-in-progress: true - steps: - - name: Checkout repository - uses: actions/checkout@v3 + steps: + - uses: actions/checkout@v3 - # I'm paying for Depot for faster ARM builds. - - uses: depot/setup-action@v1 + # I'm paying for Depot for faster ARM builds. + - uses: depot/setup-action@v1 - # Login against a Docker registry - - name: Log into registry ${{ env.REGISTRY }} - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + # Log in to GCP + - uses: google-github-actions/auth@v1 + id: auth + with: + token_format: access_token + credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }} - # Extract metadata (tags, labels) for Docker - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Log into the docker registry via the GCP token + - uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: oauth2accesstoken + password: ${{ steps.auth.outputs.access_token }} - # Build and push Docker image with Depot - - name: Build and push Docker image - id: build-and-push - uses: depot/build-push-action@v1 - with: - project: r257ctfqm6 - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 + # Build and push Docker image with Depot + - uses: depot/build-push-action@v1 + with: + project: r257ctfqm6 + context: . + push: true + tags: ${{env.REGISTRY}}/${{env.IMAGE}} + platforms: linux/amd64,linux/arm64 + + # Deploy to cloud run + - uses: google-github-actions/deploy-cloudrun@v1 + with: + service: ${{env.SERVICE}} + image: ${{env.REGISTRY}}/${{env.IMAGE}}