From c5d847d541e93db596ee4533e051ec719569667b Mon Sep 17 00:00:00 2001 From: mxcl Date: Thu, 7 Jul 2022 16:18:49 -0400 Subject: [PATCH] Use tea to build the website --- .github/mk-pantry-accessible.sh | 3 ++ .github/workflows/cd.yml | 18 +++----- .github/workflows/cleanup.yml | 18 +++----- .github/workflows/staging.yml | 44 ++++++++----------- README.md | 78 +++++++++++++-------------------- 5 files changed, 67 insertions(+), 94 deletions(-) create mode 100755 .github/mk-pantry-accessible.sh diff --git a/.github/mk-pantry-accessible.sh b/.github/mk-pantry-accessible.sh new file mode 100755 index 0000000..57a58e9 --- /dev/null +++ b/.github/mk-pantry-accessible.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +git config --global url."https://teaxyz:$1@github.com/teaxyz/pantry".insteadOf "https://github.com/teaxyz/pantry" diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 2ae5a6e..00a9a7f 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -3,34 +3,32 @@ on: branches: - main paths-ignore: - - '**/*.md' + - '*.md' concurrency: group: deploy cancel-in-progress: true +env: + TEA_SECRET: ${{ secrets.TEA_SECRET }} + jobs: deploy: runs-on: ubuntu-latest - if: github.ref == 'refs/heads/main' steps: - name: Create Deployment uses: bobheadxi/deployments@v1 id: deployment with: step: start - token: ${{ github.token }} env: aws - uses: actions/checkout@v3 - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + - run: .github/mk-pantry-accessible.sh ${{ secrets.TEMP_JACOBS_GITHUB_PAT }} + - uses: teaxyz/setup@v0 with: - hugo-version: 'latest' - - - name: Build - run: hugo -s src -d ../public --minify + target: build ## means s3 sync will only sync things we need sync’d - uses: chetan/git-restore-mtime-action@v1 @@ -61,13 +59,11 @@ jobs: --distribution-id ${{ secrets.AWS_CF_DISTRIBUTION_ID }} \ --paths '/*' - - name: Seal Deployment uses: bobheadxi/deployments@v1 if: always() with: step: finish - token: ${{ github.token }} status: ${{ job.status }} deployment_id: ${{ steps.deployment.outputs.deployment_id }} env: ${{ steps.deployment.outputs.env }} diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml index bcbe73d..38960c8 100644 --- a/.github/workflows/cleanup.yml +++ b/.github/workflows/cleanup.yml @@ -9,12 +9,10 @@ jobs: steps: - name: inject slug/short variables uses: rlespinasse/github-slug-action@v3.x - - - name: set STAGE variable in environment for next steps + - name: Set STAGE variable in environment for next steps run: echo "STAGE=pr-${{ github.event.number }}-${{ env.GITHUB_HEAD_REF_SLUG }}" >> $GITHUB_ENV - - name: checkout the files - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: @@ -22,12 +20,10 @@ jobs: # there is a bug with the actions/cache used in bahmutov/npm-install@v1 on "closed" event # more infos here : https://github.com/actions/cache/issues/478 - - name: install node dependencies - run: yarn --frozen-lockfile + - run: yarn --frozen-lockfile working-directory: .cdk - - name: configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 + - uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} @@ -37,12 +33,12 @@ jobs: - name: lol wut? don't look at this. run: mkdir public - - name: destroy the stack on AWS + - name: Destroy the stack on AWS run: yarn destroy working-directory: .cdk - - name: delete the github deployments and the corresponding environment + - name: Delete the github deployments and the corresponding environment uses: strumwolf/delete-deployment-environment@v1.1.0 with: token: ${{ secrets.GITHUB_TOKEN }} - environment: ${{ env.STAGE }} \ No newline at end of file + environment: ${{ env.STAGE }} diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 5474c38..9646eaa 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -1,18 +1,19 @@ -on: - pull_request: +on: pull_request concurrency: group: ${{ github.event.number }} cancel-in-progress: true +env: + TEA_SECRET: ${{ secrets.TEA_SECRET }} + jobs: deploy: runs-on: ubuntu-latest steps: - name: inject slug/short variables uses: rlespinasse/github-slug-action@v3.x - - - name: set STAGE variable in environment for next steps + - name: Set STAGE variable in environment for next steps run: echo "STAGE=pr-${{ github.event.number }}-${{ env.GITHUB_HEAD_REF_SLUG }}" >> $GITHUB_ENV - name: Create Deployment @@ -20,27 +21,29 @@ jobs: id: deployment with: step: start - token: ${{ github.token }} env: ${{ env.STAGE }} ref: ${{ github.head_ref }} - no_override: false - transient: true + override: true - uses: actions/checkout@v3 - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 - with: - hugo-version: 'latest' - - - name: Staging configuration + - name: Apply Staging Configuration run: | sed -i -e 's/^baseURL\s*=.*$/baseUrl = ""/i' config.toml echo "relativeurls = true" >>config.toml working-directory: src - - name: Build - run: hugo -s src -d ../public + - run: .github/mk-pantry-accessible.sh ${{ secrets.TEMP_JACOBS_GITHUB_PAT }} + - uses: teaxyz/setup@v0 + with: + target: build + + - uses: actions/setup-node@v3 + with: + node-version: 14 + - uses: bahmutov/npm-install@v1 + with: + working-directory: .cdk - uses: aws-actions/configure-aws-credentials@v1 with: @@ -48,15 +51,7 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-east-1 - - uses: actions/setup-node@v3 - with: - node-version: 14 - - name: install node dependencies - uses: bahmutov/npm-install@v1 - with: - working-directory: .cdk - - - name: deploy the stack on AWS + - name: Deploy to AWS id: cdk_deploy run: yarn deploy working-directory: .cdk @@ -66,7 +61,6 @@ jobs: if: always() with: step: finish - token: ${{ github.token }} status: ${{ job.status }} deployment_id: ${{ steps.deployment.outputs.deployment_id }} env: ${{ env.STAGE }} diff --git a/README.md b/README.md index 5a441b7..05ea175 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,49 @@ ![tea](https://tea.xyz/banner.png) -Deploys to [tea.xyz](https://tea.xyz). +Deploys to [tea.xyz]. -# Conditions of Use +# Legal -This repo is open source, but you may not publish this website in an attempt -to masquerade as tea.inc. Trademark law has our back here. +You may not publish this website in an attempt to masquerade as tea.inc. +The tea logo and wordmark are registered trademarks of tea.inc. -# Getting Started +# Contributing + +* The site is built with [Hugo] and [Bootstrap]. +* `.html` files in [`./src/layouts/page/`] have a corresponding `.md` file in [`./src/content/`]. +* Repeated components are in [`./src/layouts/partials/`]. + +## Getting Started + +hugo can render your edits while you work: ```sh -hugo serve --watch -D +hugo serve --watch --buildDrafts --source src ``` +## Dependencies -# Editing/Syntax - -This site is has been built with the help of [Bootstrap] for CSS/JS heavy-lifting and [HUGO] for templating and DRY development. HUGO must be installed locally in order to adequately preview development via terminal command `hugo server`. Partials/repeated components can be be found in [`layouts/partials`]. Each HTML page ([`layouts/page`]) must have a corresponding Markdown file in the [`content`] folder. - -# Creating a New Page - -1. Create a new HTML file in [`layouts/page`]. -2. Define the content section via `{{ define "main" }}` prior to proposed content area, and `{{ end }}` after proposed content area. User this HTML file to affect layout and styling. Content may be added via the corresponding `.md` file (see step 3) -3. Create an `.md` file in the [`content`] folder and provide the appropriate metadata. For example: - ```yaml - title: "White Paper" # (How this page will appear in the menu) - Description: "tea.white paper" # (Populates as page title) - layout: "white-paper" # (the associated HTML file) - menu: main # (Assign a menu) - weight: 7 # (Order in which this item will appear) - ``` - Following that, begin typing content. This will populate in the section of your HTML document that has been defined as `main`. -4. If adding a menu link for an external source or ID, edit the [`config.toml`](config.toml) accordingly. -5. Run with `hugo serve --watch -D`. - - -# Editing Partials/Repeated Components - -Partials may be edited in plain HTML. No additional [HUGO] syntax is required. - - -# Defining Partial Locations - -Partials are defined via the `baseof.html` file in [`layouts/default`]. This informs the layout of a newly generated page. Insert new partials via the syntax `{{- partial "partial.html" -}}`. - - -# Dependencies +Install hugo yourself or use tea: `sh <(curl tea.xyz) hugo`. | Project | Version | |------------|---------| -| nodejs.org | ^18 | -| gohugo.io | ^0.99 | -| bootstrap | ^5 | -| jquery | ^3.6 | +| gohugo.io | >=0.99 | +# Build + +Builds a static, deployable version of the website. + +```sh +hugo --source src --destination ../public --minify +``` + + +[tea.xyz]: https://tea.xyz [Bootstrap]: https://getbootstrap.com/docs/5.2/getting-started/introduction/ -[HUGO]: https://gohugo.io/documentation/ -[`content`]: content/ -[`layouts/page`]: layouts/page/ -[`layouts/partials`]: layouts/partials/ -[`layouts/default`]: layouts/default/ +[Hugo]: https://gohugo.io/documentation/ +[`./src/layouts/page/`]: src/layouts/page +[`./src/content/`]: src/content +[`./src/layouts/partials/`]: src/layouts/partials