From 77de6aedf3edd54eeaf0a1958a44975a2fbbf26c Mon Sep 17 00:00:00 2001 From: watsonb8 Date: Thu, 6 Jun 2024 10:34:28 -0500 Subject: [PATCH] Adding actions --- .gitea/workflows/ci.yaml | 81 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .gitea/workflows/ci.yaml diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..5e4aeff --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,81 @@ +name: Build homebridge-harmony-control +on: + workflow_dispatch: + push: + branches: + - master + +jobs: + build: + name: Build + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + - run: | + npm ci + npm run build + + version: + name: Version + outputs: + version: ${{ steps.get_version.outputs.version }} + commit: ${{ steps.get_version.outputs.commit }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + - id: get_version + name: Set Version + run: | + export version=`node -p "require('./package.json').version"` + export commit=`echo $GITHUB_SHA | cut -c1-5` + echo "version=$version" >> "$GITHUB_OUTPUT" + echo "commit=$commit" >> "$GITHUB_OUTPUT" + + publish_tagged: + name: Publish Latest + needs: + - build + - version + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + - run: npm config set @watsonb8:registry https://gitea.watsonlabs.net/api/packages/watsonb8/npm/ + - name: Publish + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + COMMIT: ${{ needs.version.outputs.commit }} + run: | + npm config set -- '//gitea.watsonlabs.net/api/packages/watsonb8/npm/:_authToken' "$NPM_TOKEN" + npm version prerelease --preid="$COMMIT" --git-tag-version=false --allow-same-version=true + npm publish + + deploy: + runs-on: + - ubuntu-latest + - internal + name: Deploy + needs: publish_tagged + steps: + - name: Set up SSH key + run: | + mkdir -p ~/.ssh + echo "${{ secrets.ELEVATED_HOMEBRIDGE_SSH_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -p 22 homebridge.me >> ~/.ssh/known_hosts + sudo apt update + sudo apt install sshpass + + - name: Remove old Package + run: | + sshpass -p '${{ secrets.ELEVATED_HOMEBRIDGE_PASSWORD }}' ssh -v -o StrictHostKeyChecking=no ${{ secrets.ELEVATED_HOMEBRIDGE_USER }}@${{ secrets.HOMEBRIDGE_HOST }} <<'ENDSSH' + rm -r /home/${{ secrets.HOMEBRIDGE_USER }}/.npm-global/lib/node_modules/@watsonb8/homebridge-harmony-control + ENDSSH + - name: Deploy + run: | + sshpass -p '${{ secrets.ELEVATED_HOMEBRIDGE_PASSWORD }}' ssh -v -o StrictHostKeyChecking=no ${{ secrets.ELEVATED_HOMEBRIDGE_USER }}@${{ secrets.HOMEBRIDGE_HOST }} <<'ENDSSH' + npm install -g @watsonb8/homebridge-harmony-control + ENDSSH \ No newline at end of file