Skip to content

Commit

Permalink
ci: use composite actions
Browse files Browse the repository at this point in the history
Signed-off-by: rare-magma <[email protected]>
  • Loading branch information
rare-magma committed Aug 10, 2024
1 parent 703015f commit 4f5be8f
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 170 deletions.
19 changes: 19 additions & 0 deletions .github/deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Install dependencies
description: Installs dependencies
runs:
using: "composite"
steps:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
shell: bash
run: pnpm install
32 changes: 32 additions & 0 deletions .github/docker/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Build docker image
description: Builds docker image and pushes to GHCR
runs:
using: "composite"
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
labels: ${{ steps.meta.outputs.labels }}
17 changes: 17 additions & 0 deletions .github/playwright/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Run e2e tests
description: Runs playwright tests
runs:
using: "composite"
steps:
- name: Run Playwright tests
shell: bash
run: pnpm exec playwright test
env:
HOME: /root

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
12 changes: 12 additions & 0 deletions .github/test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Run tests
description: Runs checks and tests
runs:
using: "composite"
steps:
- name: Lint
shell: bash
run: pnpm lint

- name: Run tests
shell: bash
run: pnpm test -- --run
64 changes: 5 additions & 59 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,73 +7,19 @@ concurrency:
on:
pull_request:
types: [opened, reopened]

jobs:
test:
name: test
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
run: pnpm install

- name: Lint
run: pnpm lint

- name: Run tests
run: pnpm test -- --run

e2e:
name: e2e
timeout-minutes: 5
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.45.3-jammy
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
run: pnpm install

- name: Run Playwright tests
run: pnpm exec playwright test
env:
HOME: /root

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
- uses: rare-magma/guitos/.github/composites/deps@main
- uses: rare-magma/guitos/.github/composites/test@main
- uses: rare-magma/guitos/.github/composites/playwright@main
117 changes: 6 additions & 111 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
name: Release
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
Expand All @@ -17,73 +14,16 @@ jobs:
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
run: pnpm install

- name: Lint
run: pnpm lint

- name: Run tests
run: pnpm test -- --run

e2e:
name: e2e
timeout-minutes: 5
permissions:
contents: read
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.45.3-jammy
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
run: pnpm install

- name: Run Playwright tests
run: pnpm exec playwright test
env:
HOME: /root

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
- uses: rare-magma/guitos/.github/composites/deps@main
- uses: rare-magma/guitos/.github/composites/test@main
- uses: rare-magma/guitos/.github/composites/playwright@main

release:
name: release
Expand All @@ -94,7 +34,6 @@ jobs:
runs-on: ubuntu-latest
needs:
- test
- e2e
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -120,22 +59,8 @@ jobs:
git add CHANGELOG.md package.json
git commit -m "chore(release): ${{ steps.semrel.outputs.version }}"
- name: Install pnpm
if: steps.semrel.outputs.version != ''
uses: pnpm/action-setup@v4
with:
version: 9.4.0

- name: Setup Node
if: steps.semrel.outputs.version != ''
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"

- name: Install dependencies
- uses: rare-magma/guitos/.github/composites/deps@main
if: steps.semrel.outputs.version != ''
run: pnpm install

- name: Build
if: steps.semrel.outputs.version != ''
Expand All @@ -151,38 +76,8 @@ jobs:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy build --project-name=guitos

- name: Set up QEMU
- uses: rare-magma/guitos/.github/composites/docker@main
if: steps.semrel.outputs.version != ''
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
if: steps.semrel.outputs.version != ''
uses: docker/setup-buildx-action@v3

- name: Log in to the container registry
if: steps.semrel.outputs.version != ''
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
if: steps.semrel.outputs.version != ''
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
if: steps.semrel.outputs.version != ''
uses: docker/build-push-action@v6
with:
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
labels: ${{ steps.meta.outputs.labels }}

- name: Compress bundle
if: steps.semrel.outputs.version != ''
Expand Down

0 comments on commit 4f5be8f

Please sign in to comment.