Merge pull request #251 from brecert/actions-demo-test

This commit is contained in:
Paul Makles 2021-09-17 09:40:23 +01:00 committed by GitHub
commit 2ff9c91287
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 87 additions and 39 deletions

33
.github/actions/build/action.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Build
description: Builds a project instance, assuming all the correct project files are in the build folder
inputs:
base:
name: Base path
description: The path to use as a base for linking
required: true
default: /
folder:
name: Build Folder
description: The folder to try to build from
required: true
default: .
runs:
using: composite
steps:
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 15
cache: "yarn"
- name: Install Dependencies and Build
shell: bash -l {0}
env:
BUILD_FOLDER: ${{ inputs.folder }}
BASE: ${{ inputs.base }}
run: |
cd "$BUILD_FOLDER"
yarn install
yarn build --base "$BASE"

View file

@ -9,6 +9,7 @@ on:
paths-ignore: paths-ignore:
- ".github/**" - ".github/**"
- "!.github/workflows/docker.yml" - "!.github/workflows/docker.yml"
- "!.github/workflows/preview_*.yml"
- ".vscode/**" - ".vscode/**"
- ".gitignore" - ".gitignore"
- ".gitlab-ci.yml" - ".gitlab-ci.yml"
@ -17,14 +18,23 @@ on:
pull_request: pull_request:
branches: branches:
- "master" - "master"
paths-ignore:
- ".github/**"
- "!.github/workflows/docker.yml"
- "!.github/workflows/preview_*.yml"
- ".vscode/**"
- ".gitignore"
- ".gitlab-ci.yml"
- "LICENSE"
- "README"
workflow_dispatch: workflow_dispatch:
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
architecture: [linux/amd64] architecture: [linux/amd64]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -37,8 +47,8 @@ jobs:
- name: Cache Docker layers - name: Cache Docker layers
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: /tmp/.buildx-cache/${{ matrix.architecture }} path: /tmp/.buildx-cache/${{ matrix.architecture }}
key: ${{ runner.os }}-buildx-${{ matrix.architecture }}-${{ github.sha }} key: ${{ runner.os }}-buildx-${{ matrix.architecture }}-${{ github.sha }}
- name: Build - name: Build
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
@ -48,8 +58,8 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new/${{ matrix.architecture }},mode=max cache-to: type=local,dest=/tmp/.buildx-cache-new/${{ matrix.architecture }},mode=max
- name: Move cache - name: Move cache
run: | run: |
rm -rf /tmp/.buildx-cache/${{ matrix.architecture }} rm -rf /tmp/.buildx-cache/${{ matrix.architecture }}
mv /tmp/.buildx-cache-new/${{ matrix.architecture }} /tmp/.buildx-cache/${{ matrix.architecture }} mv /tmp/.buildx-cache-new/${{ matrix.architecture }} /tmp/.buildx-cache/${{ matrix.architecture }}
publish: publish:
needs: [test] needs: [test]
@ -67,8 +77,8 @@ jobs:
- name: Cache amd64 Docker layers - name: Cache amd64 Docker layers
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: /tmp/.buildx-cache/linux/amd64 path: /tmp/.buildx-cache/linux/amd64
key: ${{ runner.os }}-buildx-linux/amd64-${{ github.sha }} key: ${{ runner.os }}-buildx-linux/amd64-${{ github.sha }}
- name: Docker meta - name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v3 uses: docker/metadata-action@v3
@ -97,5 +107,5 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- name: Move cache - name: Move cache
run: | run: |
rm -rf /tmp/.buildx-cache rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache

View file

@ -3,13 +3,12 @@ name: Mirroring
on: [push, delete] on: [push, delete]
jobs: jobs:
to_gitlab: to_gitlab:
runs-on: ubuntu-18.04 runs-on: ubuntu-18.04
steps: if: secrets.GITLAB_SSH_PRIVATE_KEY
- uses: actions/checkout@v1 steps:
- uses: pixta-dev/repository-mirroring-action@v1 - uses: actions/checkout@v1
with: - uses: pixta-dev/repository-mirroring-action@v1
target_repo_url: with:
git@gitlab.com:insert/revolt-vite.git target_repo_url: git@gitlab.com:insert/revolt-vite.git
ssh_private_key: ssh_private_key: ${{ secrets.GITLAB_SSH_PRIVATE_KEY }}
${{ secrets.GITLAB_SSH_PRIVATE_KEY }}

View file

@ -1,8 +1,8 @@
name: Clean Preview name: Clean Preview
#! Safety: #! Safety:
#! this workflow should not execute any code at all #! this workflow should not execute any untrusted input at all
#! see githubs docs on pull_request_target for more #! see the docs on `pull_request_target` for more
on: on:
pull_request_target: pull_request_target:
types: [unlabeled] types: [unlabeled]
@ -11,6 +11,8 @@ jobs:
clean: clean:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event.label.name == 'use-preview' if: github.event.label.name == 'use-preview'
env:
BASE: refs/pull/${{ github.event.pull_request.number }}
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
@ -19,14 +21,14 @@ jobs:
persist-credentials: false persist-credentials: false
- name: clean previews - name: clean previews
run: 'rm -rf "./refs/pull/${{ github.event.pull_request.number }}"' run: rm -rf "$BASE"
- name: publish cleaned previews - name: publish cleaned previews
uses: JamesIves/github-pages-deploy-action@4.1.5 uses: JamesIves/github-pages-deploy-action@4.1.5
with: with:
folder: . folder: .
branch: build-previews branch: build-previews
single-commit: true commit-message: "Cleaning up build result for #${{ github.event.pull_request.number }}"
- name: send comment - name: send comment
uses: marocchino/sticky-pull-request-comment@v2 uses: marocchino/sticky-pull-request-comment@v2

View file

@ -1,41 +1,45 @@
name: Preview Pull Request name: Preview Pull Request
#! Safety:
#! this workflow should not execute any untrusted input at all
#! see the docs on `pull_request_target` for more
on: on:
pull_request: pull_request_target:
types: [synchronize, reopened, labeled] types: [synchronize, reopened, labeled]
jobs: jobs:
build: preview:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# make sure the pull request is labeled with 'use-preview' # make sure the pull request is labeled with 'use-preview'
if: github.event.label.name == 'use-preview' || contains(github.event.pull_request.labels.*.name, 'use-preview') if: github.event.label.name == 'use-preview' || contains(github.event.pull_request.labels.*.name, 'use-preview')
env:
BASE: refs/pull/${{ github.event.pull_request.number }}/merge
REPO: ${{ github.event.repository.name }}
steps: steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
# Head commit of the pull request # Head commit of the pull request
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
path: pull
submodules: recursive submodules: recursive
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 15
cache: "yarn"
- run: yarn install
# - run: yarn check
- name: build - name: build
run: yarn build --base "/revite/${{ github.ref }}/" uses: ./.github/actions/build
with:
base: /${{ env.REPO }}/${{ env.BASE }}/
folder: pull
- name: publish preview - name: publish preview
uses: JamesIves/github-pages-deploy-action@4.1.5 uses: JamesIves/github-pages-deploy-action@4.1.5
with: with:
folder: dist folder: pull/dist
branch: build-previews branch: build-previews
target-folder: ${{ github.ref }} target-folder: ${{ env.BASE }}
single-commit: true single-commit: true
commit-message: "Publishing build result from #${{ github.event.pull_request.number }}"
- name: send comment - name: send comment
uses: marocchino/sticky-pull-request-comment@v2 uses: marocchino/sticky-pull-request-comment@v2
@ -43,6 +47,6 @@ jobs:
header: Preview environment header: Preview environment
message: | message: |
## Preview environment ## Preview environment
https://${{ github.repository_owner }}.github.io/revite/${{ github.ref }}/ https://${{ github.repository_owner }}.github.io/${{ env.REPO }}/${{ env.BASE }}/
This link will remain active until the `use-preview` label is removed. This link will remain active until the `use-preview` label is removed.