on: push: tags: - '[0-9]+\.[0-9]+\.[0-9]+-pre\.[0-9]+' jobs: check-tag: runs-on: docker steps: - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - name: Check if Version in package.json matches Tag run: | VERSION=$(npm pkg get version --workspaces=false | tr -d \") if test $VERSION != "${{ github.ref_name }}"; then echo "Expected Version is: '${{ github.ref_name }}' actual Version is: '$VERSION'"; exit 1 else echo "Version is: '$VERSION'"; fi checking: needs: [ check-tag ] runs-on: docker container: forgejo.neshweb.net/ci-docker-images/node-alpine-git:latest steps: - name: Checkout source code uses: https://code.forgejo.org/actions/checkout@v3 - name: Install packages run: npm i - name: Run astro check (linting + static analysis) run: npm run astro check build-site: needs: [ checking ] if: success() runs-on: dind steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log into Docker Package Registry uses: docker/login-action@v3 with: registry: forgejo.neshweb.net username: ${{ secrets.FORGEJO_USERNAME }} password: ${{ secrets.FORGEJO_TOKEN }} - name: Build and push to Docker Package Registry uses: docker/build-push-action@v5 with: push: true tags: forgejo.neshweb.net/firq/firq-dev-website:${{ github.ref_name }}, forgejo.neshweb.net/firq/firq-dev-website:preview create-release: needs: [ build-site ] if: success() runs-on: docker steps: - name: Release New Version uses: https://code.forgejo.org/actions/forgejo-release@v1 with: direction: upload url: https://forgejo.neshweb.net release-dir: release token: ${{ secrets.FORGEJO_TOKEN }} tag: ${{ github.ref_name }} prerelease: true auto-deploy-dockge: needs: [ build-site ] runs-on: docker container: nikolaik/python-nodejs:python3.11-nodejs21 steps: - name: Configure pip uses: | pip config set global.index-url https://pypi.org/simple pip config set global.extra-index-url https://forgejo.neshweb.net/api/packages/Firq/pypi/simple/ pip config set global.timeout 60 pip config set global.trusted-host "pypi.org forgejo.neshweb.net" - name: Install Dockge CLI run: pip install dockge-cli - name: Configure Dockge CLI run: | dockge host https://dockge.firq.dev dockge login --user ${{ secrets.DOCKGE_USER }} --password ${{ secrets.DOCKGE_CREDENTIAL }} - name: Check status and redeploy run: | dockge status firq-dev-preview dockge update firq-dev-preview dockge status firq-dev-preview - name: Reset CLI run : | dockge logout dockge exit # doesn't work atm # unlighthouse: # needs: [publish] # if: success() # runs-on: docker # container: registry.gitlab.com/gitlab-ci-utils/lighthouse:latest # services: # website: # image: forgejo.neshweb.net/firq/firq-dev-website:preview # steps: # - name: Install Dependencies # run: npm install @unlighthouse/cli puppeteer # - name: Run unlighthouse # run: node_modules/.bin/unlighthouse-ci # - name: Upload reports # uses: actions/upload-artifact@v3 # with: # name: unlighthouse-reports # path: unlighthouse-reports/