-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cdff8a5
commit e246367
Showing
45 changed files
with
15,176 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ignores: ["go-ipfs"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
.github | ||
.nyc_output | ||
coverage | ||
node_modules | ||
scripts | ||
test | ||
data | ||
|
||
.eslintignore | ||
.eslintrc | ||
.nycrc | ||
.prettierrc | ||
*.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
node_modules | ||
package.json | ||
coverage | ||
.nyc_output |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"extends": ["eslint:recommended", "prettier"], | ||
"plugins": ["prettier"], | ||
"env": { | ||
"es6": true, | ||
"node": true | ||
}, | ||
"parserOptions": { | ||
"ecmaVersion": 9, | ||
"sourceType": "module" | ||
}, | ||
"rules": { | ||
"prettier/prettier": "error", | ||
"no-console": 2 | ||
}, | ||
"overrides": [ | ||
{ | ||
"files": ["**/test/**/*.test.js"], | ||
"rules": { | ||
"prettier/prettier": "error" | ||
}, | ||
"env": { | ||
"mocha": true | ||
} | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,263 @@ | ||
name: Release | ||
|
||
on: | ||
push: | ||
branches: ["main"] | ||
|
||
jobs: | ||
|
||
preconditions: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
repo_name: ${{ steps.repo_ids.outputs.REPO_NAME }} | ||
org_name: ${{ steps.repo_ids.outputs.ORG_NAME }} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
- name: Check token | ||
run: | | ||
if [ -z "${{ secrets.GITHUB_TOKEN }}"]; then | ||
echo "Must provide a GITHUB_TOKEN secret in order to run release workflow" | ||
exit 1 | ||
fi | ||
- name: Get repository identifiers | ||
id: repo_ids | ||
run: | | ||
REPO_NAME=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]') | ||
ORG_NAME=$(echo "${{ github.event.repository.owner.name }}" | tr '[:upper:]' '[:lower:]') | ||
echo "::set-output name=REPO_NAME::$REPO_NAME" | ||
echo "::set-output name=ORG_NAME::$ORG_NAME" | ||
helm-lint: | ||
runs-on: ubuntu-latest | ||
needs: [preconditions] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
- name: Set up Helm | ||
uses: azure/setup-helm@v1 | ||
with: | ||
version: v3.4.0 | ||
- uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.7 | ||
- name: Set up chart-testing | ||
uses: helm/[email protected] | ||
- name: Run chart-testing (lint) | ||
run: ct lint --validate-maintainers false --charts helm/${{ needs.preconditions.outputs.repo_name }}/ | ||
|
||
# helm-test: | ||
# runs-on: ubuntu-latest | ||
# needs: [preconditions] | ||
# steps: | ||
# - name: Checkout | ||
# uses: actions/checkout@v2 | ||
# with: | ||
# fetch-depth: 0 | ||
# - name: Setup QEMU | ||
# uses: docker/setup-qemu-action@v1 | ||
# with: | ||
# platforms: all | ||
# - name: Setup Docker Buildx | ||
# id: buildx | ||
# uses: docker/setup-buildx-action@v1 | ||
# with: | ||
# buildkitd-flags: "--debug" | ||
# - name: Set up Helm | ||
# uses: azure/setup-helm@v1 | ||
# with: | ||
# version: v3.4.0 | ||
# - uses: actions/setup-python@v2 | ||
# with: | ||
# python-version: 3.7 | ||
# - name: Set up chart-testing | ||
# uses: helm/[email protected] | ||
# - name: Setup Minikube | ||
# uses: manusa/[email protected] | ||
# with: | ||
# minikube version: 'v1.17.1' | ||
# kubernetes version: 'v1.19.2' | ||
# - name: Login to minikube docker registry | ||
# run: eval $(minikube -p minikube docker-env) | ||
# - name: Build and Publish image | ||
# uses: docker/build-push-action@v2 | ||
# with: | ||
# builder: ${{ steps.buildx.outputs.name }} | ||
# context: . | ||
# load: true | ||
# file: ./Dockerfile | ||
# tags: | | ||
# ${{ needs.preconditions.outputs.repo_name }}:latest | ||
# labels: | | ||
# org.opencontainers.image.title=${{ needs.preconditions.outputs.repo_name }} | ||
# org.opencontainers.image.description=${{ github.event.repository.description }} | ||
# org.opencontainers.image.source=${{ github.event.repository.html_url }} | ||
# org.opencontainers.image.url=${{ github.event.repository.html_url }} | ||
# org.opencontainers.image.revision=${{ github.sha }} | ||
# - name: Run chart-testing (install) | ||
# run: ct install --charts helm/${{ needs.preconditions.outputs.repo_name }}/ | ||
|
||
lint: | ||
name: Run lint | ||
runs-on: ubuntu-latest | ||
needs: [preconditions] | ||
steps: | ||
- uses: actions/checkout@master | ||
- uses: actions/setup-node@master | ||
with: | ||
node-version: 16.x | ||
- name: Cache Node.js modules | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS | ||
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.OS }}-node- | ||
${{ runner.OS }}- | ||
- name: Install Packages | ||
run: npm ci | ||
- name: Lint | ||
run: npm run lint | ||
dependency-check: | ||
name: Run dependency check | ||
runs-on: ubuntu-latest | ||
needs: [preconditions] | ||
steps: | ||
- uses: actions/checkout@master | ||
- uses: actions/setup-node@master | ||
with: | ||
node-version: 16.x | ||
- name: Cache Node.js modules | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS | ||
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.OS }}-node- | ||
${{ runner.OS }}- | ||
- name: Install Packages | ||
run: npm ci | ||
- name: Dependency Check | ||
run: npm run depcheck | ||
tests: | ||
name: Run tests | ||
runs-on: ubuntu-latest | ||
needs: [preconditions] | ||
steps: | ||
- uses: actions/checkout@master | ||
- uses: actions/setup-node@master | ||
with: | ||
node-version: 16.x | ||
- name: Cache Node.js modules | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS | ||
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.OS }}-node- | ||
${{ runner.OS }}- | ||
- name: Install Packages | ||
run: npm ci | ||
- name: Setup dependencies | ||
run: docker-compose up -d | ||
- name: Sleep | ||
uses: kibertoad/[email protected] | ||
with: | ||
time: "30s" | ||
- name: Run tests | ||
run: npm run test | ||
check-version: | ||
name: "Check version" | ||
runs-on: ubuntu-latest | ||
outputs: | ||
is_new_version: ${{ steps.get_version.outputs.IS_NEW_VERSION }} | ||
version: ${{ steps.get_version.outputs.VERSION }} | ||
build_date: ${{ steps.get_version.outputs.BUILD_DATE }} | ||
is_prerelease: ${{ steps.get_version.outputs.IS_PRERELEASE }} | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- run: git fetch --depth=1 --tags origin | ||
- name: Install yq | ||
run: sudo snap install yq | ||
- name: Check Build Version | ||
id: get_version | ||
run: ./scripts/check-version.sh | ||
shell: bash | ||
- name: Skipping release as version has not increased | ||
if: steps.get_version.outputs.IS_NEW_VERSION != 'true' | ||
shell: bash | ||
run: | | ||
echo "Skipping release as current version has already been published" | ||
publish: | ||
name: "Publish package" | ||
needs: [preconditions, helm-lint, helm-test, lint, dependency-check, tests, check-version] | ||
runs-on: ubuntu-latest | ||
if: ${{ needs.check-version.outputs.is_new_version == 'true' }} | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
# Docker build | ||
- name: Setup QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
with: | ||
platforms: all | ||
- name: Setup Docker Buildx | ||
id: buildx | ||
uses: docker/setup-buildx-action@v1 | ||
with: | ||
buildkitd-flags: "--debug" | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v1 | ||
with: | ||
registry: ghcr.io | ||
username: $GITHUB_ACTOR | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Publish multi-arch image | ||
uses: docker/build-push-action@v2 | ||
with: | ||
push: true | ||
builder: ${{ steps.buildx.outputs.name }} | ||
context: . | ||
file: ./Dockerfile | ||
platforms: linux/amd64, linux/arm64 | ||
tags: | | ||
ghcr.io/${{ needs.preconditions.outputs.org_name }}/${{ needs.preconditions.outputs.repo_name }}:${{ needs.check-version.outputs.version }} | ||
ghcr.io/${{ needs.preconditions.outputs.org_name }}/${{ needs.preconditions.outputs.repo_name }}:latest | ||
labels: | | ||
org.opencontainers.image.title=${{ needs.preconditions.outputs.repo_name }} | ||
org.opencontainers.image.description=${{ github.event.repository.description }} | ||
org.opencontainers.image.source=${{ github.event.repository.html_url }} | ||
org.opencontainers.image.url=${{ github.event.repository.html_url }} | ||
org.opencontainers.image.revision=${{ github.sha }} | ||
org.opencontainers.image.version=${{ needs.check-version.outputs.version }} | ||
org.opencontainers.image.created=${{ needs.check-version.outputs.build_date }} | ||
# Publish helm charts | ||
# - name: Publish Helm charts | ||
# uses: stefanprodan/helm-gh-pages@master | ||
# with: | ||
# token: ${{ secrets.GITHUB_TOKEN }} | ||
# charts_dir: helm | ||
|
||
# Build github release | ||
- name: Build release version | ||
uses: "marvinpinto/action-automatic-releases@latest" | ||
with: | ||
repo_token: "${{ secrets.GITHUB_TOKEN }}" | ||
automatic_release_tag: ${{ needs.check-version.outputs.version }} | ||
prerelease: false | ||
title: Release ${{ needs.check-version.outputs.version }} | ||
- name: Build release latest | ||
uses: "marvinpinto/action-automatic-releases@latest" | ||
with: | ||
repo_token: "${{ secrets.GITHUB_TOKEN }}" | ||
automatic_release_tag: latest | ||
prerelease: false | ||
title: Latest Release ${{ needs.check-version.outputs.version }} |
Oops, something went wrong.