Initial commit: Gitea Actions demo project with Docker build
Some checks failed
Build and Push Docker Image / build (push) Failing after 6m27s
Some checks failed
Build and Push Docker Image / build (push) Failing after 6m27s
Add simple Node.js Hello World application with automated Docker build and push workflow using Gitea Actions. The workflow builds and pushes images to the Gitea registry with versioning from package.json. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
8
.dockerignore
Normal file
8
.dockerignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.gitea
|
||||||
|
README.md
|
||||||
|
.dockerignore
|
||||||
|
Dockerfile
|
||||||
40
.gitea/workflows/build.yml
Normal file
40
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
name: Build and Push Docker Image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Read package.json version
|
||||||
|
id: package-version
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./package.json').version")
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
echo "Building version: $VERSION"
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
registry.budakova.org/knee-cola/gitea-actions-demo-project:${{ steps.package-version.outputs.version }}
|
||||||
|
registry.budakova.org/knee-cola/gitea-actions-demo-project:latest
|
||||||
|
cache-from: type=registry,ref=registry.budakova.org/knee-cola/gitea-actions-demo-project:buildcache
|
||||||
|
cache-to: type=registry,ref=registry.budakova.org/knee-cola/gitea-actions-demo-project:buildcache,mode=max
|
||||||
11
Dockerfile
Normal file
11
Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
FROM node:18-alpine
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
RUN npm install --production
|
||||||
|
|
||||||
|
COPY index.js ./
|
||||||
|
|
||||||
|
CMD ["node", "index.js"]
|
||||||
79
README.md
Normal file
79
README.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# Gitea Actions Demo Project
|
||||||
|
|
||||||
|
A simple Node.js "Hello World" application demonstrating Gitea Actions CI/CD pipeline with Docker build and push.
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── .gitea/
|
||||||
|
│ └── workflows/
|
||||||
|
│ └── build.yml # Gitea Actions workflow
|
||||||
|
├── index.js # Main application
|
||||||
|
├── package.json # Project configuration
|
||||||
|
├── Dockerfile # Docker image definition
|
||||||
|
├── .dockerignore # Docker ignore file
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Application
|
||||||
|
|
||||||
|
The application is a simple Node.js script that prints "Hello World" to the console.
|
||||||
|
|
||||||
|
### Running Locally
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node index.js
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running with Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build the image
|
||||||
|
docker build -t gitea-actions-demo-project:1.0.0 .
|
||||||
|
|
||||||
|
# Run the container
|
||||||
|
docker run gitea-actions-demo-project:1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gitea Actions CI/CD Pipeline
|
||||||
|
|
||||||
|
The project includes a Gitea Actions workflow that automatically:
|
||||||
|
|
||||||
|
1. Triggers on push to `master` or `main` branches
|
||||||
|
2. Checks out the code
|
||||||
|
3. Reads the version from `package.json`
|
||||||
|
4. Builds a Docker image
|
||||||
|
5. Pushes the image to `registry.budakova.org/knee-cola/gitea-actions-demo-project:<version>`
|
||||||
|
6. Also tags and pushes as `latest`
|
||||||
|
|
||||||
|
### Setup Requirements
|
||||||
|
|
||||||
|
To use the Gitea Actions workflow, you need to configure the following secrets in your Gitea repository:
|
||||||
|
|
||||||
|
1. Go to your repository settings
|
||||||
|
2. Navigate to Secrets section
|
||||||
|
3. Add the following secrets:
|
||||||
|
- `DOCKER_USERNAME`: Your Docker registry username
|
||||||
|
- `DOCKER_PASSWORD`: Your Docker registry password
|
||||||
|
|
||||||
|
### Workflow File
|
||||||
|
|
||||||
|
The workflow is defined in [.gitea/workflows/build.yml](.gitea/workflows/build.yml)
|
||||||
|
|
||||||
|
### Image Naming
|
||||||
|
|
||||||
|
Images are pushed with two tags:
|
||||||
|
- `registry.budakova.org/knee-cola/gitea-actions-demo-project:<version-from-package.json>`
|
||||||
|
- `registry.budakova.org/knee-cola/gitea-actions-demo-project:latest`
|
||||||
|
|
||||||
|
## Updating the Version
|
||||||
|
|
||||||
|
To change the version of your Docker image, simply update the `version` field in [package.json](package.json). The next push to master/main will build and push the new version.
|
||||||
|
|
||||||
|
## Testing the Workflow
|
||||||
|
|
||||||
|
1. Make a change to the code or update the version in `package.json`
|
||||||
|
2. Commit and push to master/main branch
|
||||||
|
3. Check the Actions tab in your Gitea repository to see the workflow running
|
||||||
|
4. Once complete, your Docker image will be available at the registry
|
||||||
13
package.json
Normal file
13
package.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "gitea-actions-demo-project",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Demo project showcasing Gitea Actions with Docker build and push",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "node index.js",
|
||||||
|
"test": "echo \"No tests yet\" && exit 0"
|
||||||
|
},
|
||||||
|
"keywords": ["gitea", "actions", "docker", "demo"],
|
||||||
|
"author": "",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user