Files
go-example/.gitea/workflows/deploy.yaml

71 lines
2.7 KiB
YAML

name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-ci
container:
image: ubuntu:ci
volumes:
- data:/var/data
- deploy:/var/deploy
- /usr/bin/docker:/usr/bin/docker
- /usr/local/bin/kubectl:/usr/local/bin/kubectl
steps:
- run: echo "PATH=/var/data/zApps/go/bin:$PATH" >> $GITHUB_ENV
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v6
with:
fetch-depth: 1
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- name: Check go version
run: |
go version
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v9
- name: Tests
run: |
cd ${{ gitea.workspace }}
go test -cover ./...
- name: Go build
run: |
cd ${{ gitea.workspace }}
CGO_ENABLED=0
go build -ldflags "-X main.version=1.0.0-${{ gitea.sha }}" -o helloapp .
- name: Check Docker
run: |
docker --version
- name: Login to Harbor
run: |
echo "${{ secrets.HARBOR_PASSWORD }}" | docker login localhost:8180 -u "${{ secrets.HARBOR_USERNAME }}" --password-stdin
- name: Build Docker image
run: |
cd ${{ gitea.workspace }}
docker build -t localhost:8180/k8s-example/k8s-example:${{ gitea.sha }} .
- name: Push Docker image to local registry
run: |
docker push localhost:8180/k8s-example/k8s-example:${{ gitea.sha }}
- name: Check kubectl
run: |
kubectl version --client
- name: Set up Kubeconfig
run: |
mkdir -p $HOME/.kube
echo "${{ secrets.KUBECONFIG_DATA }}" | base64 --decode > $HOME/.kube/config
- name: Deploy to Kubernetes
run: |
cd ${{ gitea.workspace }}
sed -i "s|localhost:8180/k8s-example/k8s-example:latest|localhost:8180/k8s-example/k8s-example:${{ gitea.sha }}|g" deployment.yaml
cat deployment.yaml
echo
echo "Applying Kubernetes deployment..."
kubectl apply -f deployment.yaml
- run: echo "🍏 This job's status is ${{ job.status }}."