--- on: push: workflow_dispatch: jobs: test: runs-on: 'self-hosted' steps: - uses: 'actions/checkout@v4' - uses: 'actions/setup-go@v5' with: go-version-file: 'go.mod' - name: 'fmt' run: | make tidy no-dirty - name: 'check' run: | make check tidy no-dirty build: if: "${{ startsWith(github.ref, 'refs/tags/') }}" needs: - 'test' runs-on: 'self-hosted' steps: - uses: 'actions/checkout@v4' - uses: 'actions/setup-go@v5' with: go-version-file: 'go.mod' - name: 'build' run: | printf '%s' "$GIT_CRYPT_SECRET" | base64 -d > secret git-crypt unlock secret make build env: GIT_CRYPT_SECRET: '${{ secrets.GIT_CRYPT }}' - uses: 'actions/upload-artifact@v3' with: if-no-files-found: 'error' name: 'ods' path: 'ods' deploy: needs: - 'build' runs-on: 'self-hosted' steps: - uses: 'actions/download-artifact@v3' with: name: 'ods' - run: | printf '%s' "$SSH_PRIVATE_KEY" > private_key SSHOPTS="-i private_key -o StrictHostKeyChecking=accept-new" rsync -e "ssh ${SSHOPTS}" ods root@ods.adyxax.org:/usr/local/bin/ ssh ${SSHOPTS} root@ods.adyxax.org "systemctl restart ods" env: SSH_PRIVATE_KEY: '${{ secrets.SSH_PRIVATE_KEY }}' publish: needs: - 'build' runs-on: 'self-hosted' steps: - uses: 'actions/download-artifact@v3' with: name: 'ods' - uses: 'actions/forgejo-release@v2' with: direction: 'upload' tag: '${{ github.ref_name }}' sha: '${{ github.sha }}' release-dir: './' token: '${{ env.GITHUB_TOKEN }}' hide-archive-link: true release-notes-assistant: true