Skip to content

Commit

Permalink
Refactor GitHub Actions workflows (#150)
Browse files Browse the repository at this point in the history
  • Loading branch information
dshevtsov authored Aug 20, 2024
1 parent 6745aa5 commit b58099a
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 140 deletions.
7 changes: 4 additions & 3 deletions .github/super-linter.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
IGNORE_GITIGNORED_FILES=true
VALIDATE_GITLEAKS=true
VALIDATE_MARKDOWN=true
MARKDOWN_CONFIG_FILE=.markdownlint.yml
VALIDATE_YAML=true
VALIDATE_ALL_CODEBASE=false
VALIDATE_GITHUB_ACTIONS=true
VALIDATE_JSON=true
VALIDATE_MARKDOWN=true
VALIDATE_YAML=true
21 changes: 7 additions & 14 deletions .github/workflows/github-pages.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
---
name: Github Pages
on: workflow_dispatch
permissions: {}
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
actions: read
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node v16
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

- name: Enable Corepack for Yarn
run: corepack enable

- name: Install Dependencies
run: yarn install
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false

- name: Build site
run: yarn build
env:
Expand Down
17 changes: 3 additions & 14 deletions .github/workflows/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,13 @@ jobs:
build-and-index:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node v16
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

- name: Enable Corepack for Yarn
run: corepack enable

- name: Install Dependencies
run: yarn install
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false

- name: Build site
run: yarn build

Expand Down
17 changes: 3 additions & 14 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,24 +55,13 @@ jobs:
needs: [set-state, pre-build]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node v16
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

- name: Enable Corepack for Yarn
run: corepack enable

- name: Install Dependencies
run: yarn install
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false

- name: Gatsby Cache
uses: actions/cache@v3.3.2
with:
Expand Down
17 changes: 3 additions & 14 deletions .github/workflows/stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,24 +66,13 @@
needs: [set-state, pre-build]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node v16
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

- name: Enable Corepack for Yarn
run: corepack enable

- name: Install Dependencies
run: yarn install
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false

- name: Gatsby Cache
uses: actions/cache@v3.3.2
with:
Expand Down
177 changes: 96 additions & 81 deletions .github/workflows/test-pull-request.yml
Original file line number Diff line number Diff line change
@@ -1,85 +1,100 @@
---
###########################
###########################
## Pull request testing ##
###########################
###########################
name: Latest Pull Request
###########################
###########################
## Pull request testing ##
###########################
###########################
name: Validate pull request

# Documentation:
# - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions
# - SuperLinter: https://github.com/github/super-linter
# - Link validation: https://github.com/remarkjs/remark-validate-links

######################################################
# Start the job on a pull request to the main branch #
######################################################
on: pull_request

# Documentation:
# - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions
# - SuperLinter: https://github.com/github/super-linter
# - Link validation: https://github.com/remarkjs/remark-validate-links
#################################################
# Disable all permissions on the workflow level #
#################################################
permissions: {}

###############
# Set the Job #
###############
jobs:
lint:
# Set the agent to run on
runs-on: ubuntu-latest

############################################
# Grant status permission for MULTI_STATUS #
############################################
permissions:
contents: read
statuses: write

##################
# Load all steps #
##################
steps:
##########################
# Checkout the code base #
##########################
- name: Checkout Code
uses: actions/checkout@v4
with:
# Full git history is needed to get a proper list of changed files
# within `super-linter`
fetch-depth: 0
- name: Load super-linter configuration
run: cat .github/super-linter.env >> "$GITHUB_ENV"

################################
# Run Linters against code base #
################################
- name: Lint Code Base
#
# Use full version number to avoid cases when a next
# released version is buggy
# About slim image: https://github.com/github/super-linter#slim-image
uses: super-linter/super-linter/slim@v7.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: main

######################################################
# Start the job on a pull request to the main branch #
######################################################
on: pull_request
test:
runs-on: ubuntu-latest
needs: lint
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache-dependency-path: 'yarn.lock'

- name: Check links
run: yarn test

###############
# Set the Job #
###############
jobs:
validate:
# Set the agent to run on
runs-on: ubuntu-latest

############################################
# Grant status permission for MULTI_STATUS #
############################################
permissions:
contents: read
packages: read
statuses: write

##################
# Load all steps #
##################
steps:
##########################
# Checkout the code base #
##########################
- name: Checkout Code
uses: actions/checkout@v4
with:
# Full git history is needed to get a proper list of changed files
# within `super-linter`
fetch-depth: 0
- run: cat ".github/super-linter.env" >> "$GITHUB_ENV"

################################
# Run Linters against code base #
################################
- name: Lint Code Base
#
# Use full version number to avoid cases when a next
# released version is buggy
# About slim image: https://github.com/github/super-linter#slim-image
uses: super-linter/super-linter/slim@v5.7.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: main
VALIDATE_ALL_CODEBASE: false
VALIDATE_GITHUB_ACTIONS: true

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

- name: Enable Corepack for Yarn
run: corepack enable

- name: Install Dependencies
run: yarn install
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false

- name: Check links
run: yarn test

- name: Build site
if: ${{ success() }}
run: yarn build
build:
runs-on: ubuntu-latest
needs: test
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v4
- name: Use Setup Node and Install Dependencies Action
uses: commerce-docs/devsite-install-action@main
with:
node-version-file: '.nvmrc'
cache-dependency-path: 'yarn.lock'

- name: Build site
run: yarn build

0 comments on commit b58099a

Please sign in to comment.