diff --git a/.github/workflows/docker.yml b/.github/workflows/deploy-prod.yml similarity index 71% rename from .github/workflows/docker.yml rename to .github/workflows/deploy-prod.yml index bd7e2db..b22ca61 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/deploy-prod.yml @@ -1,22 +1,17 @@ -name: Create and publish a Docker image +name: Publish to dockerhub and perform a deploy on cloud run -# Configures this workflow to run every time a change is pushed to the branch called `release`. -# on: -# release: -# types: [published] on: - push: - branches: ["build"] + release: + types: [published] -# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. jobs: build-and-push-image: runs-on: ubuntu-latest - # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. + permissions: contents: read packages: write - id-token: "write" + id-token: write steps: - name: Checkout repository diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml new file mode 100644 index 0000000..ab92652 --- /dev/null +++ b/.github/workflows/deploy-staging.yml @@ -0,0 +1,46 @@ +name: Publish to dockerhub and perform a deploy on cloud run + +on: + push: + branches: ["develop"] + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: true + tags: vnguyen/openbeta-media-server:staging + + - id: "auth" + name: "Authenticate to Google Cloud" + uses: "google-github-actions/auth@v1" + with: + credentials_json: "${{ secrets.GOOGLE_CLOUD_CREDENTIALS }}" + + - id: "deploy" + uses: "google-github-actions/deploy-cloudrun@v1" + with: + service: "staging-media-server" + image: "vnguyen/openbeta-media-server:staging" + + - name: "Use output" + run: 'curl "${{ steps.deploy.outputs.url }}"'