Skip to content

prepare grid view

prepare grid view #128

Workflow file for this run

name: Deploy to Pages
on:
push:
branches: ['main']
workflow_dispatch:
concurrency:
group: 'pages'
cancel-in-progress: false
permissions:
contents: read
pages: write
id-token: write
jobs:
check-markdown-links:
name: check-markdown-links
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: '.markdown.json'
build-cppcon23:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: changes
with:
filters: .github/path-filters.yml
- name: authenticate to aws
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_ROLE }}
- name: Setup Node
uses: actions/setup-node@v4
if: steps.changes.outputs.cppcon23 == 'true'
- name: Setup Pages
uses: actions/configure-pages@v4
if: steps.changes.outputs.cppcon23 == 'true'
- name: Install dependencies
run: |
npm install
npm -w slides/cppcon23 install
if: steps.changes.outputs.cppcon23 == 'true'
- name: Build slides
working-directory: ./slides/cppcon23
run: npm run build -- --base /talks/cppcon23
if: steps.changes.outputs.cppcon23 == 'true'
- name: Export slides
working-directory: ./slides/cppcon23
run: npm run export
if: steps.changes.outputs.cppcon23 == 'true'
- name: Prepare final artifact
run: |
mkdir -p ./dist
mv ./slides/cppcon23/dist ./dist/cppcon23
mkdir -p ./dist/cppcon23/images
mv ./slides/cppcon23/images/cppcon-title-page.png ./dist/cppcon23/images
tar -zcf cppcon23.tar.gz ./dist
if: steps.changes.outputs.cppcon23 == 'true'
- name: push api to aws
run: aws s3 cp cppcon23.tar.gz ${{ secrets.AWS_BUCKET }}/
if: steps.changes.outputs.cppcon23 == 'true'
- name: pull api from aws
run: |
aws s3 cp ${{ secrets.AWS_BUCKET }}/cppcon23.tar.gz .
tar -zxf cppcon23.tar.gz .
if: steps.changes.outputs.cppcon23 == 'false'
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cppcon23
path: ${{ github.workspace }}/cppcon23.tar.gz
retention-days: 1
build-cppcon21:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: changes
with:
filters: .github/path-filters.yml
- name: authenticate to aws
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_ROLE }}
- name: Setup Node
uses: actions/setup-node@v4
if: steps.changes.outputs.cppcon21 == 'true'
- name: Setup Pages
uses: actions/configure-pages@v4
if: steps.changes.outputs.cppcon21 == 'true'
- name: Install dependencies
run: |
npm install
npm -w slides/cppcon21 install
if: steps.changes.outputs.cppcon21 == 'true'
- name: Build slides
working-directory: ./slides/cppcon21
run: npm run build -- --base /talks/cppcon21
if: steps.changes.outputs.cppcon21 == 'true'
- name: Export slides
working-directory: ./slides/cppcon21
run: npm run export
if: steps.changes.outputs.cppcon21 == 'true'
- name: Prepare final artifact
run: |
mkdir -p ./dist
mv ./slides/cppcon21/dist ./dist/cppcon21
mkdir -p ./dist/cppcon21/images
mv ./slides/cppcon21/images/cppcon-title-page.png ./dist/cppcon21/images
tar -zcf cppcon21.tar.gz ./dist
if: steps.changes.outputs.cppcon21 == 'true'
- name: push api to aws
run: aws s3 cp cppcon21.tar.gz ${{ secrets.AWS_BUCKET }}/
if: steps.changes.outputs.cppcon21 == 'true'
- name: pull api from aws
run: |
aws s3 cp ${{ secrets.AWS_BUCKET }}/cppcon21.tar.gz .
tar -zxf cppcon21.tar.gz .
if: steps.changes.outputs.cppcon21 == 'false'
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cppcon21
path: ${{ github.workspace }}/cppcon21.tar.gz
retention-days: 1
build-bazelcon23:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: changes
with:
filters: .github/path-filters.yml
- name: authenticate to aws
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_ROLE }}
- name: Prepare final artifact
run: |
mkdir -p ./dist/bazelcon23/images
mv ./slides/bazelcon23/redirect.html ./dist/bazelcon23/index.html
mv ./slides/bazelcon23/slides-bazelcon23-pejman.pdf ./dist/bazelcon23/
mv ./slides/bazelcon23/images/bazelcon-cover.png ./dist/bazelcon23/images/
tar -zcf bazelcon23.tar.gz ./dist
if: steps.changes.outputs.bazelcon23 == 'true'
- name: push api to aws
run: aws s3 cp bazelcon23.tar.gz ${{ secrets.AWS_BUCKET }}/
if: steps.changes.outputs.bazelcon23 == 'true'
- name: pull api from aws
run: |
aws s3 cp ${{ secrets.AWS_BUCKET }}/bazelcon23.tar.gz .
tar -zxf bazelcon23.tar.gz .
if: steps.changes.outputs.bazelcon23 == 'false'
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: bazelcon23
path: ${{ github.workspace }}/bazelcon23.tar.gz
retention-days: 1
build-web:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: changes
with:
filters: .github/path-filters.yml
- name: authenticate to aws
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_ROLE }}
- name: Setup Node
uses: actions/setup-node@v4
if: steps.changes.outputs.web == 'true'
- name: Setup Pages
uses: actions/configure-pages@v4
if: steps.changes.outputs.web == 'true'
- name: Install dependencies
run: |
npm install
npm -w web install
if: steps.changes.outputs.web == 'true'
- run: npm run build
if: steps.changes.outputs.web == 'true'
- name: Prepare final artifact
run: |
mv ./web/out ./dist/
tar -zcf web.tar.gz ./dist
if: steps.changes.outputs.web == 'true'
- name: push web to aws
run: aws s3 cp web.tar.gz ${{ secrets.AWS_BUCKET }}/
if: steps.changes.outputs.web == 'true'
- name: pull web from aws
run: |
aws s3 cp ${{ secrets.AWS_BUCKET }}/web.tar.gz .
tar -zxf web.tar.gz .
if: steps.changes.outputs.web == 'false'
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: web
path: ${{ github.workspace }}/web.tar.gz
retention-days: 1
bundle:
runs-on: ubuntu-latest
needs:
- build-bazelcon23
- build-cppcon21
- build-cppcon23
- build-web
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download CppCon21 artifact
uses: actions/download-artifact@v4
with:
name: cppcon21
path: ${{ github.workspace }}
- name: Download CppCon23 artifact
uses: actions/download-artifact@v4
with:
name: cppcon23
path: ${{ github.workspace }}
- name: Download BazelCon23 artifact
uses: actions/download-artifact@v4
with:
name: bazelcon23
path: ${{ github.workspace }}
- name: Download Web artifact
uses: actions/download-artifact@v4
with:
name: web
path: ${{ github.workspace }}
- name: Extract artifacts
run: |
tar -xf cppcon21.tar.gz
tar -xf cppcon23.tar.gz
tar -xf bazelcon23.tar.gz
tar -xf web.tar.gz
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./dist
deploy:
needs: bundle
if: github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4