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 committed Sep 29, 2024
2 parents 91e0e1e + d39dfe8 commit 4ef7bb8
Show file tree
Hide file tree
Showing 11 changed files with 3,652 additions and 0 deletions.
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 "automation@michaeltaylor.dev"
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.dig
node_modules
dist
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### 0.0.1-alpha.2 (2024-09-29)


### Features

* add release script ([4b30d3b](https://github.com/DIG-Network/clvm-execution-env/commit/4b30d3b47edbbd1031f8c5738d46055601d52e52))
* add tee for clvm ([482b454](https://github.com/DIG-Network/clvm-execution-env/commit/482b454e5ea59eb145aa4ea048bf3d2cdb89a564))
56 changes: 56 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Use an official Ubuntu base image
FROM ubuntu:20.04

# Set environment variables for non-interactive installs
ENV DEBIAN_FRONTEND=noninteractive

# Update the package list and install basic tools
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
build-essential \
libssl-dev \
libffi-dev \
python3-dev \
python3-pip \
python3-venv \
lsb-release \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*

# Install Node.js 20
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs

# Verify Node.js and npm installation
RUN node -v && npm -v

# Install Chia dev tools
RUN git clone https://github.com/Chia-Network/chia-dev-tools.git /chia-dev-tools && \
cd /chia-dev-tools && \
python3 -m venv venv && \
. ./venv/bin/activate && \
pip install --upgrade pip && \
pip install .

# Set working directory to /usr/src/app for the Express app
WORKDIR /usr/src/app

# Copy package.json and package-lock.json first to leverage Docker caching
COPY package*.json ./

# Install npm dependencies for the Express server
RUN npm install

# Copy the rest of the application (TypeScript files, config, etc.)
COPY . .

# Build the TypeScript project
RUN npm run build

# Expose the necessary ports for Chia and the Express server
EXPOSE 8444 8555 3000

# Set the command to start the Express server
CMD ["npm", "start"]
Loading

0 comments on commit 4ef7bb8

Please sign in to comment.