v2.1.0 0fb867d

github-workflow.yml RawHistoryFolder

1# Example GitHub Actions workflow for deploying to Gordon
2# Copy this file to your repository as .github/workflows/deploy.yml
3#
4# Prerequisites:
5# 1. Generate a Gordon token on your server:
6#    gordon auth token generate --subject github-actions --scopes push,pull --expiry 0
7#
8# 2. Add these secrets to your GitHub repository:
9#    - GORDON_REGISTRY: Your registry URL (e.g., registry.mydomain.com)
10#    - GORDON_USERNAME: Token subject (e.g., github-actions)
11#    - GORDON_TOKEN: The generated JWT token
12
13name: Deploy to Gordon
14
15on:
16  # Deploy on version tags
17  push:
18    tags:
19      - 'v*'        # Matches v1.0.0, v2.1.3, etc.
20      - 'release-*' # Matches release-2024-01-15, etc.
21
22  # Optional: Allow manual deployments
23  workflow_dispatch:
24    inputs:
25      tag:
26        description: 'Tag/version to deploy (leave empty for latest commit)'
27        required: false
28        type: string
29
30jobs:
31  deploy:
32    runs-on: ubuntu-latest
33
34    # Optional: Only deploy from main branch for manual triggers
35    # if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')
36
37    steps:
38      - name: Checkout code
39        uses: actions/checkout@v6
40        with:
41          # For manual dispatch with specific tag
42          ref: ${{ github.event.inputs.tag || github.ref }}
43
44      - name: Deploy to Gordon
45        id: deploy
46        uses: bnema/gordon/.github/actions/deploy@main
47        with:
48          registry: ${{ secrets.GORDON_REGISTRY }}
49          username: ${{ secrets.GORDON_USERNAME }}
50          password: ${{ secrets.GORDON_TOKEN }}
51          tag: ${{ github.event.inputs.tag }}
52          # Optional customizations:
53          # image: myapp                    # Custom image name (defaults to repo name)
54          # dockerfile: ./Dockerfile        # Custom Dockerfile path
55          # context: .                      # Build context
56          # push-latest: 'true'             # Also push :latest tag
57          # platforms: linux/amd64          # Target platform(s)
58
59      - name: Deployment summary
60        run: |
61          echo "## Deployment Complete" >> $GITHUB_STEP_SUMMARY
62          echo "" >> $GITHUB_STEP_SUMMARY
63          echo "**Image:** \`${{ steps.deploy.outputs.image }}\`" >> $GITHUB_STEP_SUMMARY
64          echo "**Tag:** \`${{ steps.deploy.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY
65          echo "" >> $GITHUB_STEP_SUMMARY
66          echo "Gordon will automatically deploy this image to your configured routes." >> $GITHUB_STEP_SUMMARY
67
68# ============================================================================
69# ALTERNATIVE CONFIGURATIONS
70# ============================================================================
71
72# --- Deploy on push to main (continuous deployment) ---
73#
74# on:
75#   push:
76#     branches:
77#       - main
78#
79# Then in the action, the image will be tagged with the commit SHA.
80
81# --- Deploy multiple services (monorepo) ---
82#
83# jobs:
84#   deploy-api:
85#     runs-on: ubuntu-latest
86#     steps:
87#       - uses: actions/checkout@v6
88#       - uses: bnema/gordon/.github/actions/deploy@main
89#         with:
90#           registry: ${{ secrets.GORDON_REGISTRY }}
91#           username: ${{ secrets.GORDON_USERNAME }}
92#           password: ${{ secrets.GORDON_TOKEN }}
93#           image: myapp-api
94#           dockerfile: ./services/api/Dockerfile
95#           context: ./services/api
96#
97#   deploy-web:
98#     runs-on: ubuntu-latest
99#     steps:
100#       - uses: actions/checkout@v6
101#       - uses: bnema/gordon/.github/actions/deploy@main
102#         with:
103#           registry: ${{ secrets.GORDON_REGISTRY }}
104#           username: ${{ secrets.GORDON_USERNAME }}
105#           password: ${{ secrets.GORDON_TOKEN }}
106#           image: myapp-web
107#           dockerfile: ./services/web/Dockerfile
108#           context: ./services/web
109
110# --- Deploy with build arguments ---
111#
112# - uses: bnema/gordon/.github/actions/deploy@main
113#   with:
114#     registry: ${{ secrets.GORDON_REGISTRY }}
115#     username: ${{ secrets.GORDON_USERNAME }}
116#     password: ${{ secrets.GORDON_TOKEN }}
117#     build-args: |
118#       NODE_ENV=production
119#       API_URL=https://api.example.com
120#       BUILD_DATE=${{ github.event.head_commit.timestamp }}
121
122# --- Multi-platform builds ---
123#
124# - uses: bnema/gordon/.github/actions/deploy@main
125#   with:
126#     registry: ${{ secrets.GORDON_REGISTRY }}
127#     username: ${{ secrets.GORDON_USERNAME }}
128#     password: ${{ secrets.GORDON_TOKEN }}
129#     platforms: linux/amd64,linux/arm64

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close