add DESIGN.md and tokens.json: canonical visual identity spec #7
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Build and deploy txn2.com to GitHub Pages. | |
| # | |
| # REQUIRED ONE-TIME REPO SETUP: | |
| # Settings → Pages → Source: "GitHub Actions" | |
| # | |
| # Triggers: | |
| # - Push of a v* tag → live deploy at that tag | |
| # - GitHub Release published → live deploy at the release tag | |
| # - Manual run (workflow_dispatch) → live deploy with optional version override | |
| # - Pull request targeting master → build-only smoke test (no deploy) | |
| # | |
| # Master pushes do NOT deploy on their own. Tag the commit to ship. | |
| name: deploy | |
| on: | |
| push: | |
| tags: ['v*'] | |
| release: | |
| types: [published] | |
| pull_request: | |
| branches: [master] | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version stamp to display on the site (e.g. v9.0.2). Defaults to "dev".' | |
| required: false | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| env: | |
| HUGO_VERSION: 0.160.1 | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install Hugo | |
| run: | | |
| wget -O /tmp/hugo.deb "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb" | |
| sudo dpkg -i /tmp/hugo.deb | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Resolve release version | |
| id: ver | |
| run: | | |
| if [ -n "${{ inputs.version }}" ]; then | |
| VERSION="${{ inputs.version }}" | |
| elif [ "${{ github.event_name }}" = "release" ]; then | |
| VERSION="${{ github.event.release.tag_name }}" | |
| elif [ "${{ github.ref_type }}" = "tag" ]; then | |
| VERSION="${{ github.ref_name }}" | |
| elif [ "${{ github.event_name }}" = "pull_request" ]; then | |
| VERSION="pr-${{ github.event.pull_request.number }}" | |
| else | |
| VERSION="dev" | |
| fi | |
| echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | |
| echo "Resolved version: ${VERSION}" | |
| - name: Setup Pages | |
| if: github.event_name != 'pull_request' | |
| id: pages | |
| uses: actions/configure-pages@v5 | |
| - name: Build with Hugo | |
| env: | |
| HUGO_PARAMS_VERSION: ${{ steps.ver.outputs.version }} | |
| HUGO_ENVIRONMENT: production | |
| run: | | |
| hugo --minify --gc | |
| - name: Verify build output | |
| run: | | |
| test -f docs/index.html | |
| test -f docs/CNAME | |
| test -f docs/sitemap.xml | |
| test -f docs/robots.txt | |
| test -f docs/llms.txt | |
| test -f docs/images/og.png | |
| echo "All expected files present." | |
| - name: Upload Pages artifact | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: ./docs | |
| deploy: | |
| if: github.event_name != 'pull_request' | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |