85 lines
3.6 KiB
YAML
85 lines
3.6 KiB
YAML
name: Actions Build Binary
|
|
run-name: ${{ gitea.actor }} is building new image 🚀
|
|
on: push
|
|
|
|
jobs:
|
|
Build-Binary:
|
|
runs-on: soaska
|
|
steps:
|
|
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
|
|
- name: Install Node.js, curl and go
|
|
run: |
|
|
apk add --no-cache nodejs curl go git
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- name: List files in the repository
|
|
run: |
|
|
ls ${{ gitea.workspace }}
|
|
- run: echo "🍏 This job's status is ${{ job.status }}."
|
|
- name: Install go dependencies
|
|
run: |
|
|
go mod download
|
|
- name: Build Binary
|
|
run: |
|
|
go build -o $(basename ${{ gitea.repository }}) .
|
|
env:
|
|
ENVIRONMENT: production
|
|
- name: Upload binary to soaska.ru
|
|
run: |
|
|
package_name=$(basename ${{ gitea.repository }})
|
|
branch_name=$(git rev-parse --abbrev-ref HEAD)
|
|
current_date=$(git log -1 --format=%cd --date=format:'%Y-%m-%d-%H-%M-%S')
|
|
curl --user ${{ secrets.username }}:${{ secrets.password }} \
|
|
--upload-file $package_name \
|
|
https://soaska.ru/api/packages/${{ secrets.username }}/generic/$package_name-$branch_name/$current_date/$package_name
|
|
env:
|
|
ENVIRONMENT: production
|
|
Build-Docker-Image:
|
|
runs-on: soaska
|
|
needs: Build-Binary
|
|
steps:
|
|
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
|
|
- name: Install Node.js and curl
|
|
run: |
|
|
apk add --no-cache nodejs curl git
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- name: List files in the repository
|
|
run: |
|
|
ls ${{ gitea.workspace }}
|
|
- run: echo "🍏 This job's status is ${{ job.status }}."
|
|
- name: Install Docker
|
|
run: |
|
|
apk add --no-cache docker
|
|
- name: Start Docker service
|
|
run: |
|
|
dockerd &
|
|
sleep 5
|
|
docker info
|
|
- name: Get Binary from soaska.ru
|
|
run: |
|
|
package_name=$(basename ${{ gitea.repository }})
|
|
branch_name=$(git rev-parse --abbrev-ref HEAD)
|
|
current_date=$(git log -1 --format=%cd --date=format:'%Y-%m-%d-%H-%M-%S')
|
|
curl --user ${{ secrets.username }}:${{ secrets.password }} \
|
|
--output main \
|
|
https://soaska.ru/api/packages/${{ secrets.username }}/generic/$package_name-$branch_name/$current_date/$package_name
|
|
chmod 755 main
|
|
- name: List files in the repository
|
|
run: |
|
|
ls ${{ gitea.workspace }}
|
|
- name: Build Dockerfile
|
|
run: |
|
|
docker build -t $(basename ${{ github.repository}} | tr '[:upper:]' '[:lower:]') .
|
|
docker image ls
|
|
- name: Upload Docker image to soaska.ru
|
|
run: |
|
|
package_name=$(basename ${{ github.repository}} | tr '[:upper:]' '[:lower:]')
|
|
branch_name=$(git rev-parse --abbrev-ref HEAD | tr '[:upper:]' '[:lower:]')
|
|
|
|
docker login -u ${{ secrets.username }} -p ${{ secrets.password }} soaska.ru
|
|
docker tag $package_name:latest soaska.ru/${{ secrets.username }}/$package_name:$branch_name
|
|
docker tag $package_name:latest soaska.ru/${{ secrets.username }}/$package_name:latest
|
|
docker push soaska.ru/${{ secrets.username }}/$package_name:$branch_name
|
|
docker push soaska.ru/${{ secrets.username }}/$package_name:latest
|