(etke.cc-exclusive) Components page #1026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| tags: [ "v*" ] | |
| env: | |
| bunny_version: v0.1.0 | |
| base_path: ./ | |
| NODE_OPTIONS: --max_old_space_size=4096 | |
| permissions: | |
| checks: write | |
| contents: write | |
| packages: write | |
| pull-requests: read | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: lts/* | |
| cache: yarn | |
| - name: Install dependencies | |
| run: yarn install --immutable --network-timeout=300000 --pure-lockfile | |
| - name: Build | |
| run: | | |
| yarn build --base=${{ env.base_path }} | |
| mv dist dist-root | |
| yarn build --base=/admin/ | |
| mv dist dist-subpath-admin | |
| env: | |
| NODE_ENV: production | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| path: dist-root/ | |
| name: dist-root | |
| if-no-files-found: error | |
| retention-days: 1 | |
| compression-level: 0 | |
| overwrite: true | |
| include-hidden-files: true | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| path: dist-subpath-admin/ | |
| name: dist-subpath-admin | |
| if-no-files-found: error | |
| retention-days: 1 | |
| compression-level: 0 | |
| overwrite: true | |
| include-hidden-files: true | |
| docker: | |
| name: Docker | |
| needs: build | |
| runs-on: self-hosted | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: dist-root | |
| path: dist/ | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| - name: Login to ghcr.io | |
| uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Login to hub.docker.com | |
| uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 | |
| with: | |
| username: etkecc | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 | |
| with: | |
| images: | | |
| ${{ github.repository }} | |
| etkecc/synapse-admin | |
| ghcr.io/${{ github.repository }} | |
| registry.etke.cc/${{ github.repository }} | |
| tags: | | |
| type=raw,value=latest,enable=${{ github.ref_name == 'main' }} | |
| type=semver,pattern={{raw}} | |
| type=match,pattern=^v([0-9]+)\..*$,group=1,prefix=v,enable=${{ startsWith(github.ref, 'refs/tags/') }} | |
| - name: Build and push | |
| uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 | |
| with: | |
| platforms: linux/amd64,linux/arm64 | |
| context: . | |
| push: true | |
| file: docker/Dockerfile | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| build-args: | | |
| VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} | |
| VCS_REF=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} | |
| BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} | |
| docker-subpath-admin: | |
| name: Docker (subpath /admin) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: dist-subpath-admin | |
| path: dist/ | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| - name: Login to ghcr.io | |
| uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Login to hub.docker.com | |
| uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 | |
| with: | |
| username: etkecc | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 | |
| with: | |
| images: | | |
| ${{ github.repository }} | |
| etkecc/synapse-admin | |
| ghcr.io/${{ github.repository }} | |
| tags: | | |
| type=raw,value=latest-subpath-admin,enable=${{ github.ref_name == 'main' }} | |
| type=semver,pattern={{raw}}-subpath-admin | |
| - name: Build and push | |
| uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 | |
| with: | |
| platforms: linux/amd64,linux/arm64 | |
| context: . | |
| push: true | |
| file: docker/Dockerfile.subpath-admin | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| build-args: | | |
| VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} | |
| VCS_REF=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} | |
| BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} | |
| cdn: | |
| name: CDN | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: dist-root | |
| path: dist/ | |
| - name: Upload | |
| run: | | |
| wget -O bunny-upload.tar.gz https://github.com/etkecc/bunny-upload/releases/download/${{ env.bunny_version }}/bunny-upload_Linux_x86_64.tar.gz | |
| tar -xzf bunny-upload.tar.gz | |
| echo "${{ secrets.BUNNY_CONFIG }}" > bunny-config.yaml | |
| sed -i "s|<head>|<head>${{ secrets.CDN_HEAD }}|g" dist/index.html | |
| sed -i "s|<head>|<head>${{ secrets.CDN_HEAD }}|g" dist/auth-callback/index.html | |
| rm dist/robots.txt | |
| ./bunny-upload -c bunny-config.yaml | |
| github-release: | |
| name: Github Release | |
| needs: build | |
| if: ${{ startsWith(github.ref, 'refs/tags/') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: dist-root | |
| path: dist-root/ | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: dist-subpath-admin | |
| path: dist-subpath-admin/ | |
| - name: Prepare release | |
| run: | | |
| mv dist-root ketesa | |
| tar chvzf ketesa.tar.gz ketesa | |
| mv dist-subpath-admin ketesa-subpath-admin | |
| tar chvzf ketesa-subpath-admin.tar.gz ketesa-subpath-admin | |
| - uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1 | |
| with: | |
| files: | | |
| ketesa.tar.gz | |
| ketesa-subpath-admin.tar.gz | |
| generate_release_notes: true | |
| make_latest: "true" | |
| draft: false | |
| prerelease: false |