Merge pull request #822 from tjovicic/gha-integration-docs
Add github actions tutorial
This commit is contained in:
commit
560ceb6ef5
47
docs/learn/109-github-actions.md
Normal file
47
docs/learn/109-github-actions.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Dagger 109: integrate with Github Actions
|
||||
|
||||
This tutorial illustrates how to use Github Actions and Dagger to build, push and deploy Docker images to Cloud Run.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
We assume that you've finished our 106-cloudrun tutorial as this one continues right after.
|
||||
|
||||
## Setup new Github repo
|
||||
|
||||
Push existing `examples/todoapp` directory to your new Github repo (public or private). It should contain all the code
|
||||
from `https://github.com/dagger/examples/tree/main/todoapp`, `gcpcloudrun` and `.dagger/env/gcpcloudrun/` directory.
|
||||
|
||||
### Add Github Actions Secret
|
||||
|
||||
Dagger encrypts all input secrets using your key stored at `~/.config/dagger/keys.txt`. Copy the entire line starting
|
||||
with `AGE-SECRET-KEY-` and save it to a Github secret named `DAGGER_AGE_KEY`. In case you don't know how to create
|
||||
secrets on Github take a look at [this tutorial](https://docs.github.com/en/actions/reference/encrypted-secrets).
|
||||
|
||||
## Create a Github Actions Workflow
|
||||
|
||||
Create `.github/workflows/gcpcloudrun.yml` file and paste the following code into it:
|
||||
|
||||
```yaml title=".github/workflows/gcpcloudrun.yml"
|
||||
name: CloudRun
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Dagger
|
||||
uses: dagger/dagger-action@v1
|
||||
with:
|
||||
age-key: ${{ secrets.DAGGER_AGE_KEY }}
|
||||
args: up -e gcpcloudrun
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
On any push to `main` branch this workflow should run and deploy the `todoapp` to your GCP Cloud Run instance.
|
@ -1,20 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"dagger.io/gcp"
|
||||
"dagger.io/gcp/cloudrun"
|
||||
)
|
||||
|
||||
// Cloud Run service name
|
||||
serviceName: *"cloudrun-test" | string @dagger(input)
|
||||
|
||||
// Image name
|
||||
image: string @dagger(input)
|
||||
|
||||
gcpConfig: gcp.#Config
|
||||
|
||||
deploy: cloudrun.#Deploy & {
|
||||
"serviceName": serviceName
|
||||
"image": image
|
||||
config: gcpConfig
|
||||
}
|
Reference in New Issue
Block a user