summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakuya Yoshida <hawaiianphoto@geekhost.net>2022-06-09 00:50:23 +0900
committerGitHub <noreply@github.com>2022-06-09 00:50:23 +0900
commit327c62337e3bc63616153bbe5512ff235be9fc7e (patch)
tree69a87e03238e9974828ca316195ebc29c966814d
parentUpdate CONTRIBUTING.md (diff)
downloadsharkey-327c62337e3bc63616153bbe5512ff235be9fc7e.tar.gz
sharkey-327c62337e3bc63616153bbe5512ff235be9fc7e.tar.bz2
sharkey-327c62337e3bc63616153bbe5512ff235be9fc7e.zip
ok-to-test with okteto (#8799)
-rw-r--r--.github/workflows/ok-to-test.yml36
-rw-r--r--.github/workflows/pr-preview-deploy.yml70
-rw-r--r--.github/workflows/pr-preview-destroy.yml21
-rw-r--r--.okteto/okteto-pipeline.yml (renamed from okteto.yml)0
4 files changed, 127 insertions, 0 deletions
diff --git a/.github/workflows/ok-to-test.yml b/.github/workflows/ok-to-test.yml
new file mode 100644
index 0000000000..63ae05cbda
--- /dev/null
+++ b/.github/workflows/ok-to-test.yml
@@ -0,0 +1,36 @@
+# If someone with write access comments "/ok-to-test" on a pull request, emit a repository_dispatch event
+name: Ok To Test
+
+on:
+ issue_comment:
+ types: [created]
+
+jobs:
+ ok-to-test:
+ runs-on: ubuntu-latest
+ # Only run for PRs, not issue comments
+ if: ${{ github.event.issue.pull_request }}
+ steps:
+ # Generate a GitHub App installation access token from an App ID and private key
+ # To create a new GitHub App:
+ # https://developer.github.com/apps/building-github-apps/creating-a-github-app/
+ # See app.yml for an example app manifest
+ - name: Generate token
+ id: generate_token
+ uses: tibdex/github-app-token@v1
+ with:
+ app_id: ${{ secrets.APP_ID }}
+ private_key: ${{ secrets.PRIVATE_KEY }}
+
+ - name: Slash Command Dispatch
+ uses: peter-evans/slash-command-dispatch@v1
+ env:
+ TOKEN: ${{ steps.generate_token.outputs.token }}
+ with:
+ token: ${{ env.TOKEN }} # GitHub App installation access token
+ # token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # PAT or OAuth token will also work
+ reaction-token: ${{ secrets.GITHUB_TOKEN }}
+ issue-type: pull-request
+ commands: ok-to-test
+ named-args: true
+ permission: write
diff --git a/.github/workflows/pr-preview-deploy.yml b/.github/workflows/pr-preview-deploy.yml
new file mode 100644
index 0000000000..5890065764
--- /dev/null
+++ b/.github/workflows/pr-preview-deploy.yml
@@ -0,0 +1,70 @@
+# Run secret-dependent integration tests only after /ok-to-test approval
+on:
+ repository_dispatch:
+ types: [ok-to-test-command]
+
+name: Deploy preview environment
+
+jobs:
+ # Repo owner has commented /ok-to-test on a (fork-based) pull request
+ deploy-preview-environment:
+ runs-on: ubuntu-latest
+ if:
+ github.event_name == 'repository_dispatch' &&
+ github.event.client_payload.slash_command.sha != '' &&
+ contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
+ steps:
+
+ # Check out merge commit
+ - name: Fork based /ok-to-test checkout
+ uses: actions/checkout@v2
+ with:
+ ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge'
+
+ # <insert integration tests needing secrets>
+ - name: Context
+ uses: okteto/context@latest
+ with:
+ token: ${{ secrets.OKTETO_TOKEN }}
+
+ - name: Deploy preview environment
+ uses: ikuradon/deploy-preview@latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ name: pr-${{ github.event.client_payload.pull_request.number }}-misskey-dev
+ timeout: 15m
+
+ # Update check run called "integration-fork"
+ - uses: actions/github-script@v5
+ id: update-check-run
+ if: ${{ always() }}
+ env:
+ number: ${{ github.event.client_payload.pull_request.number }}
+ job: ${{ github.job }}
+ # Conveniently, job.status maps to https://developer.github.com/v3/checks/runs/#update-a-check-run
+ conclusion: ${{ job.status }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const { data: pull } = await github.rest.pulls.get({
+ ...context.repo,
+ pull_number: process.env.number
+ });
+ const ref = pull.head.sha;
+
+ const { data: checks } = await github.rest.checks.listForRef({
+ ...context.repo,
+ ref
+ });
+
+ const check = checks.check_runs.filter(c => c.name === process.env.job);
+
+ const { data: result } = await github.rest.checks.update({
+ ...context.repo,
+ check_run_id: check[0].id,
+ status: 'completed',
+ conclusion: process.env.conclusion
+ });
+
+ return result;
diff --git a/.github/workflows/pr-preview-destroy.yml b/.github/workflows/pr-preview-destroy.yml
new file mode 100644
index 0000000000..fa872715da
--- /dev/null
+++ b/.github/workflows/pr-preview-destroy.yml
@@ -0,0 +1,21 @@
+# file: .github/workflows/preview-closed.yaml
+on:
+ pull_request:
+ types:
+ - closed
+
+name: Destroy preview environment
+
+jobs:
+ destroy-preview-environment:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Context
+ uses: okteto/context@latest
+ with:
+ token: ${{ secrets.OKTETO_TOKEN }}
+
+ - name: Destroy preview environment
+ uses: okteto/destroy-preview@latest
+ with:
+ name: pr-${{ github.event.number }}-misskey-dev
diff --git a/okteto.yml b/.okteto/okteto-pipeline.yml
index e2996fbbc9..e2996fbbc9 100644
--- a/okteto.yml
+++ b/.okteto/okteto-pipeline.yml