Skip to content

Commit

Permalink
Merge pull request #1 from DIG-Network/release/v0.0.1-alpha.2
Browse files Browse the repository at this point in the history
Release/v0.0.1 alpha.2
  • Loading branch information
MichaelTaylor3D authored Sep 9, 2024
2 parents 116df17 + 7158b74 commit 95f9ca7
Show file tree
Hide file tree
Showing 53 changed files with 12,841 additions and 1 deletion.
48 changes: 48 additions & 0 deletions .github/workflows/auto-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Auto Tag

on:
push:
branches:
- main

concurrency:
group: main-release-check

jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- name: Clean workspace
uses: Chia-Network/actions/clean-workspace@main

- name: Checkout current branch
uses: actions/checkout@v3
with:
# Need PACKAGE_ADMIN_PAT token so when the tag is created, the tag automation runs
token: ${{ secrets.GH_ACCESS_TOKEN }}
fetch-depth: 0

- name: Set Git identity
run: |
git config --local user.email "[email protected]"
git config --local user.name "Automation"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Extract version from package.json
run: |
VERSION=$(jq -r '.version' package.json)
echo "Extracted version: $VERSION"
# Set the version as an output for other steps to use
echo "VERSION=$VERSION" >> $GITHUB_ENV
if git tag --list | grep -q "^$VERSION$"; then
echo "Tag $VERSION already exists, nothing to do."
else
echo "Tag does not exist. Creating and pushing tag."
git tag $VERSION -m "Release $VERSION"
git push origin $VERSION
fi
shell: bash
90 changes: 90 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Build and Push Docker

on:
push:
tags:
- '**'

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
build:
name: Build Node.js and Push Docker
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'

- name: Install Dependencies
run: npm ci

- name: Build Project
run: npm run build

- name: Extract Project Name
id: project-name
run: |
PROJECT_NAME=$(jq -r '.name' package.json)
if [ -z "$PROJECT_NAME" ]; then
echo "Project name not found in package.json!"
exit 1
fi
echo "PROJECT_NAME=$PROJECT_NAME" >> $GITHUB_ENV
- name: Debug GITHUB_REF
run: |
echo "GITHUB_REF: $GITHUB_REF"
- name: Get tag name
id: tag-name
run: |
TAGNAME=$(echo $GITHUB_REF | sed 's/refs\/tags\///')
if [ -z "$TAGNAME" ]; then
echo "TAGNAME is empty!"
exit 1
fi
echo "TAGNAME=$TAGNAME" >> $GITHUB_ENV
- name: Determine Docker Tag
id: docker-tag
run: |
if [[ "$TAGNAME" == *"alpha"* ]]; then
echo "DOCKER_TAG=latest-alpha" >> $GITHUB_ENV
else
echo "DOCKER_TAG=latest" >> $GITHUB_ENV
fi
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and Push Docker Image
run: |
echo "Building and pushing Docker image..."
echo "PROJECT_NAME: ${{ env.PROJECT_NAME }}"
echo "DOCKER_TAG: ${{ env.DOCKER_TAG }}"
echo "TAGNAME: ${{ env.TAGNAME }}"
# Ensure PROJECT_NAME, DOCKER_TAG, and TAGNAME are not empty
if [ -z "${{ env.PROJECT_NAME }}" ] || [ -z "${{ env.DOCKER_TAG }}" ] || [ -z "${{ env.TAGNAME }}" ]; then
echo "Error: One of the required variables is empty!"
exit 1
fi
docker build -t ${{ vars.DOCKER_NAMESPACE }}/${{ env.PROJECT_NAME }}:${{ env.DOCKER_TAG }} .
docker tag ${{ vars.DOCKER_NAMESPACE }}/${{ env.PROJECT_NAME }}:${{ env.DOCKER_TAG }} ${{ vars.DOCKER_NAMESPACE }}/${{ env.PROJECT_NAME }}:${{ env.TAGNAME }}
docker push ${{ vars.DOCKER_NAMESPACE }}/${{ env.PROJECT_NAME }}:${{ env.DOCKER_TAG }}
docker push ${{ vars.DOCKER_NAMESPACE }}/${{ env.PROJECT_NAME }}:${{ env.TAGNAME }}
47 changes: 47 additions & 0 deletions .github/workflows/ensure-version-increment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This workflow runs on any PRs that are targeting main and ensures that the version in package.json is incremented
name: Check Version Increment

on:
pull_request:
branches:
- 'main'

concurrency:
# SHA is added to the end if on `main` to let all main workflows run
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref == 'refs/heads/main' && github.sha || '' }}
cancel-in-progress: true

jobs:
check-version:
name: Check version increment
runs-on: ubuntu-latest
steps:
- uses: Chia-Network/actions/clean-workspace@main

- name: Checkout current branch
uses: actions/checkout@v3
with:
path: branch-repo

- name: Checkout main
uses: actions/checkout@v3
with:
ref: main
path: main-repo

- name: Check Versions
run: |
# Extract version from main branch's package.json
mainVersion=$(jq -r '.version' main-repo/package.json)
echo "Main version: $mainVersion"
# Extract version from current branch's package.json
branchVersion=$(jq -r '.version' branch-repo/package.json)
echo "Branch version: $branchVersion"
# Compare versions
if [ "$branchVersion" == "$mainVersion" ]; then
echo "Version in package.json on this branch is not incremented. Version must increment for a merge to main."
exit 1
fi
shell: bash
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules
.dig
dist
dig.config.json
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20.16
Loading

0 comments on commit 95f9ca7

Please sign in to comment.