Skip to content

run test workflows on pull requests #227

run test workflows on pull requests

run test workflows on pull requests #227

Workflow file for this run

name: CI
on: [push, pull_request, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
name: Build Scramjet
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: install wbg
uses: jetli/[email protected]
with:
version: "latest"
- name: Setup Binaryen
uses: Aandreba/[email protected]
with:
token: ${{ github.token }}
- name: Pack Scramjet
run: pnpm pack
- name: Upload Artifact (pnpm pack)
uses: actions/upload-artifact@v4
with:
name: packaged-scramjet
path: mercuryworkshop-scramjet-*.tgz
- name: Upload Artifact (dist)
uses: actions/upload-artifact@v4
with:
name: scramjet
path: |
dist/*.js
dist/*.js.map
tests:
name: Run Scramjet Tests
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: scramjet
path: dist
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: pnpm test
upload:
name: Upload release
runs-on: ubuntu-latest
needs: [build, tests]
permissions: write-all
if: github.ref == 'refs/heads/main'
steps:
- name: Delete old release and tag
uses: dev-drprasad/[email protected]
with:
delete_release: true
tag_name: latest
github_token: ${{ github.token }}
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: packaged-scramjet
path: .
- name: Release to GitHub
uses: ncipollo/release-action@v1
with:
name: Continuous Build
tag: latest
commit: main
body: "${{ github.event.head_commit.url }} ${{ github.event.head_commit.message }}"
artifacts: "mercuryworkshop-scramjet-*.tgz"
prerelease: true
pages:
name: Upload to Github Pages
runs-on: ubuntu-latest
needs: [build, tests]
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Get artifacts
uses: actions/download-artifact@v4
with:
name: scramjet
path: dist
- name: build statics
run: bash buildstatic.sh
- name: upload pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./staticbuild"
- name: deploy to github
id: deployment
uses: actions/deploy-pages@v4