mirror of https://github.com/wg-easy/wg-easy
8 changed files with 306 additions and 142 deletions
@ -1,3 +0,0 @@ |
|||||
# These are supported funding model platforms |
|
||||
|
|
||||
github: weejewel |
|
||||
@ -1,38 +0,0 @@ |
|||||
--- |
|
||||
name: Bug report |
|
||||
about: Create a report to help us improve |
|
||||
title: '' |
|
||||
labels: '' |
|
||||
assignees: '' |
|
||||
|
|
||||
--- |
|
||||
|
|
||||
**Describe the bug** |
|
||||
A clear and concise description of what the bug is. |
|
||||
|
|
||||
**To Reproduce** |
|
||||
Steps to reproduce the behavior: |
|
||||
1. Go to '...' |
|
||||
2. Click on '....' |
|
||||
3. Scroll down to '....' |
|
||||
4. See error |
|
||||
|
|
||||
**Expected behavior** |
|
||||
A clear and concise description of what you expected to happen. |
|
||||
|
|
||||
**Screenshots** |
|
||||
If applicable, add screenshots to help explain your problem. |
|
||||
|
|
||||
**Desktop (please complete the following information):** |
|
||||
- OS: [e.g. iOS] |
|
||||
- Browser [e.g. chrome, safari] |
|
||||
- Version [e.g. 22] |
|
||||
|
|
||||
**Smartphone (please complete the following information):** |
|
||||
- Device: [e.g. iPhone6] |
|
||||
- OS: [e.g. iOS8.1] |
|
||||
- Browser [e.g. stock browser, safari] |
|
||||
- Version [e.g. 22] |
|
||||
|
|
||||
**Additional context** |
|
||||
Add any other context about the problem here. |
|
||||
@ -1,38 +0,0 @@ |
|||||
name: Build & Publish Docker Image to Docker Hub |
|
||||
|
|
||||
on: |
|
||||
workflow_dispatch: |
|
||||
schedule: |
|
||||
- cron: "0 12 * * *" |
|
||||
|
|
||||
jobs: |
|
||||
deploy: |
|
||||
name: Build & Deploy |
|
||||
runs-on: ubuntu-latest |
|
||||
steps: |
|
||||
- uses: actions/checkout@v2 |
|
||||
with: |
|
||||
ref: production |
|
||||
|
|
||||
- name: Set up QEMU |
|
||||
uses: docker/setup-qemu-action@v1 |
|
||||
|
|
||||
- name: Set up Docker Buildx |
|
||||
uses: docker/setup-buildx-action@v1 |
|
||||
|
|
||||
- name: Login to DockerHub |
|
||||
uses: docker/login-action@v1 |
|
||||
with: |
|
||||
username: ${{ secrets.DOCKER_USERNAME }} |
|
||||
password: ${{ secrets.DOCKER_PASSWORD }} |
|
||||
|
|
||||
# Set environment variables |
|
||||
- run: echo RELEASE=$(cat ./src/package.json | jq -r .release) >> $GITHUB_ENV |
|
||||
|
|
||||
# Build & Publish |
|
||||
- name: Build & Publish Docker Image |
|
||||
uses: docker/build-push-action@v2 |
|
||||
with: |
|
||||
push: true |
|
||||
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 |
|
||||
tags: weejewel/wg-easy:nightly, weejewel/wg-easy:${{ env.RELEASE }}-nightly |
|
||||
@ -1,40 +0,0 @@ |
|||||
name: Build & Publish Docker Image to Docker Hub |
|
||||
|
|
||||
on: |
|
||||
workflow_dispatch: |
|
||||
push: |
|
||||
branches: |
|
||||
- production |
|
||||
- production/** |
|
||||
|
|
||||
jobs: |
|
||||
deploy: |
|
||||
name: Build & Deploy |
|
||||
runs-on: ubuntu-latest |
|
||||
steps: |
|
||||
- uses: actions/checkout@v2 |
|
||||
with: |
|
||||
ref: production |
|
||||
|
|
||||
- name: Set up QEMU |
|
||||
uses: docker/setup-qemu-action@v1 |
|
||||
|
|
||||
- name: Set up Docker Buildx |
|
||||
uses: docker/setup-buildx-action@v1 |
|
||||
|
|
||||
- name: Login to DockerHub |
|
||||
uses: docker/login-action@v1 |
|
||||
with: |
|
||||
username: ${{ secrets.DOCKER_USERNAME }} |
|
||||
password: ${{ secrets.DOCKER_PASSWORD }} |
|
||||
|
|
||||
# Set environment variables |
|
||||
- run: echo RELEASE=$(cat ./src/package.json | jq -r .release) >> $GITHUB_ENV |
|
||||
|
|
||||
# Build & Publish |
|
||||
- name: Build & Publish Docker Image |
|
||||
uses: docker/build-push-action@v2 |
|
||||
with: |
|
||||
push: true |
|
||||
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 |
|
||||
tags: weejewel/wg-easy:latest, weejewel/wg-easy:${{ env.RELEASE }} |
|
||||
@ -1,23 +0,0 @@ |
|||||
name: Lint |
|
||||
|
|
||||
on: |
|
||||
push: |
|
||||
branches: |
|
||||
- master |
|
||||
- production |
|
||||
pull_request: |
|
||||
|
|
||||
jobs: |
|
||||
lint: |
|
||||
name: Lint |
|
||||
runs-on: ubuntu-latest |
|
||||
steps: |
|
||||
- uses: actions/checkout@v2 |
|
||||
- uses: actions/setup-node@v1 |
|
||||
with: |
|
||||
node-version: '14' |
|
||||
|
|
||||
- run: | |
|
||||
cd src |
|
||||
npm ci |
|
||||
npm run lint |
|
||||
@ -0,0 +1,60 @@ |
|||||
|
name: Publish |
||||
|
|
||||
|
# Controls when the workflow will run |
||||
|
on: |
||||
|
# Triggers the workflow on release tag creation in the repository |
||||
|
release: |
||||
|
types: [released] |
||||
|
|
||||
|
# Allows you to run this workflow manually from the Actions tab |
||||
|
workflow_dispatch: |
||||
|
|
||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel |
||||
|
jobs: |
||||
|
build-and-publish: |
||||
|
runs-on: self-hosted |
||||
|
steps: |
||||
|
- name: Set up QEMU |
||||
|
uses: docker/setup-qemu-action@v2 |
||||
|
- name: Set up Docker Buildx |
||||
|
uses: docker/setup-buildx-action@v2 |
||||
|
- name: Login to DockerHub |
||||
|
uses: docker/login-action@v2 |
||||
|
with: |
||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
|
- name: Docker meta |
||||
|
id: docker_meta |
||||
|
uses: docker/metadata-action@v4 |
||||
|
with: |
||||
|
# list of Docker images to use as base name for tags |
||||
|
images: | |
||||
|
${{ secrets.DATOMS_DOCKER_IMAGE_NAME }} |
||||
|
# generate Docker tags based on the following attributes |
||||
|
tags: | |
||||
|
type=semver,pattern={{version}} |
||||
|
type=semver,pattern={{major}}.{{minor}} |
||||
|
type=semver,pattern={{major}} |
||||
|
type=sha,prefix=,format=short |
||||
|
# https://docs.docker.com/language/java/configure-ci-cd/#optimize-the-workflow |
||||
|
# - name: Cache Docker layers |
||||
|
# uses: actions/cache@v3 |
||||
|
# with: |
||||
|
# path: /tmp/.buildx-cache |
||||
|
# key: ${{ runner.os }}-buildx-${{ github.sha }} |
||||
|
# restore-keys: | |
||||
|
# ${{ runner.os }}-buildx- |
||||
|
- name: Build and push |
||||
|
uses: docker/build-push-action@v3 |
||||
|
with: |
||||
|
build-args: | |
||||
|
DATOMS_JS_REGISTRY_USER=${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
DATOMS_JS_REGISTRY_PASSWORD=${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
DATOMS_JS_REGISTRY_EMAIL=${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
DATOMS_JS_REGISTRY_URL=${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
CI=${{ secrets.CI }} |
||||
|
# cache-from: type=local,src=/tmp/.buildx-cache |
||||
|
# cache-to: type=local,dest=/tmp/.buildx-cache |
||||
|
push: true |
||||
|
tags: ${{ steps.docker_meta.outputs.tags }} |
||||
|
labels: ${{ steps.docker_meta.outputs.tags }} |
||||
@ -0,0 +1,140 @@ |
|||||
|
name: Release |
||||
|
|
||||
|
# Controls when the workflow will run |
||||
|
on: |
||||
|
# Triggers the workflow on push to main / master branch in the repository |
||||
|
push: |
||||
|
branches: |
||||
|
- main |
||||
|
- master |
||||
|
|
||||
|
# Allows you to run this workflow manually from the Actions tab |
||||
|
workflow_dispatch: |
||||
|
|
||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel |
||||
|
jobs: |
||||
|
vulnerability-assessment: |
||||
|
# The type of runner that the job will run on |
||||
|
runs-on: self-hosted |
||||
|
# Docker image |
||||
|
container: node:16.19.0 |
||||
|
# Steps represent a sequence of tasks that will be executed as part of the job |
||||
|
steps: |
||||
|
- name: Checkout |
||||
|
uses: actions/checkout@v3 |
||||
|
- run: yarn audit --groups dependencies |
||||
|
continue-on-error: true |
||||
|
|
||||
|
code-style-check: |
||||
|
runs-on: self-hosted |
||||
|
container: node:16.19.0 |
||||
|
steps: |
||||
|
- name: Checkout |
||||
|
uses: actions/checkout@v3 |
||||
|
- run: npx prettier --check . |
||||
|
|
||||
|
code-syntax-check: |
||||
|
runs-on: self-hosted |
||||
|
container: node:16.19.0 |
||||
|
steps: |
||||
|
- name: Checkout |
||||
|
uses: actions/checkout@v3 |
||||
|
- name: NPM Login |
||||
|
env: |
||||
|
DATOMS_JS_REGISTRY_USER: ${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
DATOMS_JS_REGISTRY_PASSWORD: ${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
DATOMS_JS_REGISTRY_EMAIL: ${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
DATOMS_JS_REGISTRY_URL: ${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
run: npm i -g npm-cli-login && npm-cli-login -u $DATOMS_JS_REGISTRY_USER -p $DATOMS_JS_REGISTRY_PASSWORD -e $DATOMS_JS_REGISTRY_EMAIL -r $DATOMS_JS_REGISTRY_URL -s @datoms |
||||
|
- name: Get yarn cache directory path |
||||
|
id: yarn-cache-dir-path |
||||
|
run: echo "::set-output name=dir::$(yarn cache dir)" |
||||
|
- name: Setup Yarn Cache |
||||
|
uses: actions/cache@v3 |
||||
|
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) |
||||
|
with: |
||||
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} |
||||
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} |
||||
|
restore-keys: | |
||||
|
${{ runner.os }}-yarn- |
||||
|
- name: NPM Install |
||||
|
run: yarn |
||||
|
- run: yarn test:syntax |
||||
|
|
||||
|
build: |
||||
|
runs-on: self-hosted |
||||
|
needs: [vulnerability-assessment, code-style-check, code-syntax-check] |
||||
|
steps: |
||||
|
- name: Set up QEMU |
||||
|
uses: docker/setup-qemu-action@v2 |
||||
|
- name: Set up Docker Buildx |
||||
|
uses: docker/setup-buildx-action@v2 |
||||
|
- name: Login to DockerHub |
||||
|
uses: docker/login-action@v2 |
||||
|
with: |
||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
|
- name: Docker meta |
||||
|
id: docker_meta |
||||
|
uses: docker/metadata-action@v4 |
||||
|
with: |
||||
|
# list of Docker images to use as base name for tags |
||||
|
images: | |
||||
|
${{ secrets.DATOMS_DOCKER_IMAGE_NAME }} |
||||
|
# generate Docker tags based on the following attributes |
||||
|
tags: | |
||||
|
type=sha,prefix=,format=short |
||||
|
# https://docs.docker.com/language/java/configure-ci-cd/#optimize-the-workflow |
||||
|
# - name: Cache Docker layers |
||||
|
# uses: actions/cache@v3 |
||||
|
# with: |
||||
|
# path: /tmp/.buildx-cache |
||||
|
# key: ${{ runner.os }}-buildx-${{ github.sha }} |
||||
|
# restore-keys: | |
||||
|
# ${{ runner.os }}-buildx- |
||||
|
- name: Build and push |
||||
|
uses: docker/build-push-action@v3 |
||||
|
with: |
||||
|
build-args: | |
||||
|
DATOMS_JS_REGISTRY_USER=${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
DATOMS_JS_REGISTRY_PASSWORD=${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
DATOMS_JS_REGISTRY_EMAIL=${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
DATOMS_JS_REGISTRY_URL=${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
CI=${{ secrets.CI }} |
||||
|
# cache-from: type=local,src=/tmp/.buildx-cache |
||||
|
# cache-to: type=local,dest=/tmp/.buildx-cache |
||||
|
push: true |
||||
|
tags: ${{ steps.docker_meta.outputs.tags }} |
||||
|
labels: ${{ steps.docker_meta.outputs.tags }} |
||||
|
|
||||
|
release: |
||||
|
runs-on: self-hosted |
||||
|
needs: [build] |
||||
|
container: node:16.19.0 |
||||
|
steps: |
||||
|
- name: Checkout |
||||
|
uses: actions/checkout@v3 |
||||
|
- name: NPM Login |
||||
|
env: |
||||
|
DATOMS_JS_REGISTRY_USER: ${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
DATOMS_JS_REGISTRY_PASSWORD: ${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
DATOMS_JS_REGISTRY_EMAIL: ${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
DATOMS_JS_REGISTRY_URL: ${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
run: npm i -g npm-cli-login && npm-cli-login -u $DATOMS_JS_REGISTRY_USER -p $DATOMS_JS_REGISTRY_PASSWORD -e $DATOMS_JS_REGISTRY_EMAIL -r $DATOMS_JS_REGISTRY_URL -s @datoms |
||||
|
- name: Get yarn cache directory path |
||||
|
id: yarn-cache-dir-path |
||||
|
run: echo "::set-output name=dir::$(yarn cache dir)" |
||||
|
- name: Setup Yarn Cache |
||||
|
uses: actions/cache@v3 |
||||
|
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) |
||||
|
with: |
||||
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} |
||||
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} |
||||
|
restore-keys: | |
||||
|
${{ runner.os }}-yarn- |
||||
|
- name: NPM Install |
||||
|
run: yarn |
||||
|
- name: Release |
||||
|
env: |
||||
|
GITHUB_TOKEN: ${{ secrets.DATOMS_GITHUB_TOKEN }} |
||||
|
run: yarn semantic-release |
||||
@ -0,0 +1,106 @@ |
|||||
|
name: Test |
||||
|
|
||||
|
# Controls when the workflow will run |
||||
|
on: |
||||
|
# Triggers the workflow on push to any branch except main / master in the repository |
||||
|
pull_request: |
||||
|
branches: ["master", "main"] |
||||
|
|
||||
|
# Allows you to run this workflow manually from the Actions tab |
||||
|
workflow_dispatch: |
||||
|
|
||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel |
||||
|
jobs: |
||||
|
# vulnerability-assessment: |
||||
|
# # The type of runner that the job will run on |
||||
|
# runs-on: self-hosted |
||||
|
# # Docker image |
||||
|
# container: node:16.19.0 |
||||
|
# # Steps represent a sequence of tasks that will be executed as part of the job |
||||
|
# steps: |
||||
|
# - name: Checkout |
||||
|
# uses: actions/checkout@v3 |
||||
|
# - run: yarn audit --groups dependencies |
||||
|
# continue-on-error: true |
||||
|
|
||||
|
# code-style-check: |
||||
|
# runs-on: self-hosted |
||||
|
# container: node:16.19.0 |
||||
|
# steps: |
||||
|
# - name: Checkout |
||||
|
# uses: actions/checkout@v3 |
||||
|
# - run: npx prettier --check . |
||||
|
|
||||
|
# code-syntax-check: |
||||
|
# runs-on: self-hosted |
||||
|
# container: node:16.19.0 |
||||
|
# steps: |
||||
|
# - name: Checkout |
||||
|
# uses: actions/checkout@v3 |
||||
|
# - name: NPM Login |
||||
|
# env: |
||||
|
# DATOMS_JS_REGISTRY_USER: ${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
# DATOMS_JS_REGISTRY_PASSWORD: ${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
# DATOMS_JS_REGISTRY_EMAIL: ${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
# DATOMS_JS_REGISTRY_URL: ${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
# run: npm i -g npm-cli-login && npm-cli-login -u $DATOMS_JS_REGISTRY_USER -p $DATOMS_JS_REGISTRY_PASSWORD -e $DATOMS_JS_REGISTRY_EMAIL -r $DATOMS_JS_REGISTRY_URL -s @datoms |
||||
|
# - name: Get yarn cache directory path |
||||
|
# id: yarn-cache-dir-path |
||||
|
# run: echo "::set-output name=dir::$(yarn cache dir)" |
||||
|
# - name: Setup Yarn Cache |
||||
|
# uses: actions/cache@v3 |
||||
|
# id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) |
||||
|
# with: |
||||
|
# path: ${{ steps.yarn-cache-dir-path.outputs.dir }} |
||||
|
# key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} |
||||
|
# restore-keys: | |
||||
|
# ${{ runner.os }}-yarn- |
||||
|
# - name: NPM Install |
||||
|
# run: yarn |
||||
|
# - run: yarn test:syntax |
||||
|
|
||||
|
build: |
||||
|
runs-on: self-hosted |
||||
|
# needs: [vulnerability-assessment, code-style-check, code-syntax-check] |
||||
|
steps: |
||||
|
- name: Set up QEMU |
||||
|
uses: docker/setup-qemu-action@v2 |
||||
|
- name: Set up Docker Buildx |
||||
|
uses: docker/setup-buildx-action@v2 |
||||
|
- name: Login to DockerHub |
||||
|
uses: docker/login-action@v2 |
||||
|
with: |
||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
|
- name: Docker meta |
||||
|
id: docker_meta |
||||
|
uses: docker/metadata-action@v4 |
||||
|
with: |
||||
|
# list of Docker images to use as base name for tags |
||||
|
images: | |
||||
|
${{ secrets.DATOMS_DOCKER_IMAGE_NAME }} |
||||
|
# generate Docker tags based on the following attributes |
||||
|
tags: | |
||||
|
type=sha,prefix=,format=short |
||||
|
# https://docs.docker.com/language/java/configure-ci-cd/#optimize-the-workflow |
||||
|
# - name: Cache Docker layers |
||||
|
# uses: actions/cache@v3 |
||||
|
# with: |
||||
|
# path: /tmp/.buildx-cache |
||||
|
# key: ${{ runner.os }}-buildx-${{ github.sha }} |
||||
|
# restore-keys: | |
||||
|
# ${{ runner.os }}-buildx- |
||||
|
- name: Build and push |
||||
|
uses: docker/build-push-action@v3 |
||||
|
with: |
||||
|
build-args: | |
||||
|
DATOMS_JS_REGISTRY_USER=${{ secrets.DATOMS_JS_REGISTRY_USER }} |
||||
|
DATOMS_JS_REGISTRY_PASSWORD=${{ secrets.DATOMS_JS_REGISTRY_PASSWORD }} |
||||
|
DATOMS_JS_REGISTRY_EMAIL=${{ secrets.DATOMS_JS_REGISTRY_EMAIL }} |
||||
|
DATOMS_JS_REGISTRY_URL=${{ secrets.DATOMS_JS_REGISTRY_URL }} |
||||
|
CI=${{ secrets.CI }} |
||||
|
# cache-from: type=local,src=/tmp/.buildx-cache |
||||
|
# cache-to: type=local,dest=/tmp/.buildx-cache |
||||
|
push: true |
||||
|
tags: ${{ steps.docker_meta.outputs.tags }} |
||||
|
labels: ${{ steps.docker_meta.outputs.tags }} |
||||
Loading…
Reference in new issue