diff --git a/.ansible/files/ev.service b/.ansible/files/ev.service new file mode 100644 index 0000000..97e3394 --- /dev/null +++ b/.ansible/files/ev.service @@ -0,0 +1,13 @@ +[Unit] +Description=ev +After=syslog.target network.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/ev + +Restart=always +RestartSec=30 + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/.gitea/workflows/bump.yml b/.gitea/workflows/bump.yml new file mode 100644 index 0000000..a591401 --- /dev/null +++ b/.gitea/workflows/bump.yml @@ -0,0 +1,31 @@ +name: Go Test + +on: + workflow_dispatch: + stable: + description: 'Stable Release' + required: false + type: boolean + prerelease: + description: 'Pre Release' + required: false + type: boolean + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - run: echo stable=${{ inputs.stable }} pre=${{ inputs.prerelease }} + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.21.1 + + - run: go install github.com/psanetra/git-semver/cli@master + + - run: cli next --stable=false + + - run: echo "🍏 This job's status is ${{ job.status }}." diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..9606bc7 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,43 @@ +name: Deploy + +on: + release: + types: [published] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - run: apt-get update && apt-get -y install ansible + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.21.1 + + - name: Build + run: go build -ldflags "-s -w" -o ./build/ev ./cmd/ev + + - name: Compress + uses: https://git.sour.is/actions/ghaction-upx@v2.4.0 + with: + version: latest + files: | + ./build/ev + args: -fq + + - name: Deploy + uses: https://git.sour.is/actions/action-ansible-playbook@v2 + with: + playbook: ${{ gitea.workspace }}/.ansible/playbook.yml + key: ${{secrets.deploy_ssh}} + options: | + --inventory .ansible/inventory + --become + --become-method sudo + --user deploy + --ssh-extra-args="-p 65535" + + - run: echo "🍏 This job's status is ${{ job.status }}." diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..10bc18d --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,33 @@ +name: Go Test + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - 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 }}." + + - uses: actions/checkout@v3 + - 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: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.21.1 + + - name: Test + run: go test -v -race -skip '^TestE2E|TestMain' ./... + + - run: echo "🍏 This job's status is ${{ job.status }}."