prepare grid view #128
This file contains 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
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 |