From eafa1864022c3ff9f0b8d920b399a0827e1a871b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaan=20L=C4=B1=20=E6=9D=8E=20PhD?= Date: Sat, 6 Apr 2024 16:50:10 -0400 Subject: [PATCH] Create deploy.yml --- .github/workflows/deploy.yml | 100 +++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..9e3cd85 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,100 @@ +name: Deploy +# from https://github.com/observablehq/framework/blob/main/.github/workflows/deploy.yml +on: + workflow_dispatch: {} + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + contents: read + deployments: write + id-token: write + packages: read + pages: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'yarn' + cache-dependency-path: | + yarn.lock + 'examples/*/yarn.lock' + - run: yarn --frozen-lockfile + - id: date + run: echo "date=$(TZ=America/Los_Angeles date +'%Y-%m-%d')" >> $GITHUB_OUTPUT + - id: cache-data + uses: actions/cache@v4 + with: + path: | + docs/.observablehq/cache + examples/*/docs/.observablehq/cache + key: data-${{ hashFiles('docs/data/*', 'examples/*/docs/data/*') }}-${{ steps.date.outputs.date }} + - if: steps.cache-data.outputs.cache-hit == 'true' + run: find docs/.observablehq/cache examples/*/docs/.observablehq/cache -type f -exec touch {} + + - run: yarn build + # - name: Build example "api" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/api + # - name: Build example "chess" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/chess + # - name: Build example "eia" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/eia + # env: + # EIA_KEY: ${{ secrets.EIA_KEY }} + # - name: Build example "google-analytics" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/google-analytics + # env: + # GA_PROPERTY_ID: ${{ vars.GA_PROPERTY_ID }} + # GA_CLIENT_EMAIL: ${{ secrets.GA_CLIENT_EMAIL }} + # GA_PRIVATE_KEY: ${{ secrets.GA_PRIVATE_KEY }} + # - name: Build example "hello-world" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/hello-world + # - name: Build example "mortgage-rates" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/mortgage-rates + # - name: Build example "penguin-classification" + # run: | + # python -m pip install --upgrade pip + # pip install -r requirements.txt + # yarn --frozen-lockfile && yarn build + # working-directory: examples/penguin-classification + # - name: Build example "plot" + # run: yarn --frozen-lockfile && yarn build + # working-directory: examples/plot + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - run: mkdir dist/examples && for i in examples/*; do if [ -d $i/dist ]; then mv -v $i/dist dist/examples/$(basename $i); fi; done + + # Optional: Add any other steps required to build your project here + # This might include building examples, preprocessing data, etc. + + - name: Upload build artifact for GitHub Pages + uses: actions/upload-pages-artifact@v1 + with: + path: dist + # Specify the path to your build directory + + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v1 + if: github.ref == 'refs/heads/main' + # - uses: cloudflare/pages-action@1 + # with: + # apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + # accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + # projectName: framework + # directory: dist + # gitHubToken: ${{ secrets.GITHUB_TOKEN }} + # TODO: This doesn't include the examples. How can we fix that? + # TODO: Re-enable deploy to Observable + # - name: Deploy to Observable + # run: yarn deploy -m "$(git log -1 --pretty=%s)" + # env: + # OBSERVABLE_TOKEN: ${{ secrets.OBSERVABLE_API_TOKEN }}