Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(package-and-deploy): split up + working concurrency limit for deploy #146

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright 2020 - 2024 Pionix GmbH and Contributors to EVerest

name: Package and deploy everest-admin-panel
name: Build & Deploy EVerest Admin Panel to GitHub Pages

on:
pull_request:
Expand All @@ -11,54 +11,12 @@ on:
push:
branches:
- main
tags:
- '*'
workflow_dispatch: {}

jobs:
package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Tar
run: tar -C dist -czf everest-admin-panel.tar.gz ./
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && success()
with:
files: everest-admin-panel.tar.gz

deploy:
needs: package
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' || github.ref == 'refs/heads/main'
concurrency:
group: github-pages
cancel-in-progress: false
env:
SUBDIR: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || 'main' }}
steps:
Expand Down Expand Up @@ -87,25 +45,25 @@ jobs:
run: pnpm install
- name: Build
run: pnpm build:pages
- uses: ahmadnassri/action-workflow-queue@v1 # we have to ensure that no other deployment is running
- name: Deploy to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages # The branch the action should deploy to.
folder: dist # The folder the action should deploy.
clean: true # Automatically remove deleted files from the deployment
commit-message: 'Deploying to gh-pages'
# Optional: Conditional URL based on whether it's a PR or push to main
target-folder: ${{ env.SUBDIR }}
- name: Create Job Summary
uses: actions/github-script@v5
if: always() # This ensures the step runs regardless of the job's success or failure
if: always()
with:
script: |
const ownerRepo = process.env.GITHUB_REPOSITORY;
const subDir = process.env.SUBDIR;
const baseUrl = `https://${ownerRepo.split('/')[0]}.github.io/${ownerRepo.split('/')[1]}`;
const deploymentUrl = `${baseUrl}/${subDir}`;

console.log(`Deployment URL: ${deploymentUrl}`);
core.summary.addHeading("Deployment Details")
.addLink("View Deployment", deploymentUrl)
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright 2020 - 2024 Pionix GmbH and Contributors to EVerest

name: Package EVerest Admin Panel

on:
pull_request:
branches:
- main
- spr/main/*
push:
branches:
- main
tags:
- '*'
workflow_dispatch: {}

jobs:
package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Tar
if: startsWith(github.ref, 'refs/tags/') && success()
run: tar -C dist -czf everest-admin-panel.tar.gz ./
- name: Release
lukas-mertens marked this conversation as resolved.
Show resolved Hide resolved
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/') && success()
with:
files: everest-admin-panel.tar.gz
Loading