From 6104ee15343dce09501cb0296a01fd950ae0a59c Mon Sep 17 00:00:00 2001 From: NickChecan Date: Mon, 14 Oct 2024 03:53:26 +0000 Subject: [PATCH] fix: remove step to make ghcr public --- .github/workflows/pipeline.yaml | 286 +++++++++++++++----------------- 1 file changed, 134 insertions(+), 152 deletions(-) diff --git a/.github/workflows/pipeline.yaml b/.github/workflows/pipeline.yaml index 8236fd0..1321f1d 100644 --- a/.github/workflows/pipeline.yaml +++ b/.github/workflows/pipeline.yaml @@ -1,8 +1,8 @@ name: Build, Test and Deploy on: push: - # paths: - # - 'src/**' + paths: + - 'src/**' workflow_dispatch: permissions: @@ -21,158 +21,140 @@ jobs: - name: ShellCheck uses: ludeeus/action-shellcheck@2.0.0 - - name: Make package public - env: - GITHUB_TOKEN: ${{ secrets.NEFARIOUS_TOKEN }} - run: | - gh api --method PATCH \ - -H "Accept: application/vnd.github+json" \ - /orgs/The-Nefarious-Developer/packages/container/sap-cap-javascript-node/visibility \ - -f visibility=public - - # build: - # name: Determine images - # runs-on: ubuntu-latest - # needs: lint - # steps: - - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Build dist - # run: npm run build - - # - name: Compress build files - # run: zip -r build-files.zip ./dist/ - - # - name: Upload artifact - # uses: actions/upload-artifact@v3 - # with: - # name: build-files - # path: build-files.zip - - # setup: - # name: Setup environment - # runs-on: ubuntu-latest - # needs: build - # outputs: - # matrix: ${{ steps.get-variants.outputs.matrix }} - # steps: - - # - name: Download artifact - # uses: actions/download-artifact@v3 - # with: - # name: build-files - # path: . + build: + name: Determine images + runs-on: ubuntu-latest + needs: lint + steps: + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build dist + run: npm run build + + - name: Compress build files + run: zip -r build-files.zip ./dist/ + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: build-files + path: build-files.zip + + setup: + name: Setup environment + runs-on: ubuntu-latest + needs: build + outputs: + matrix: ${{ steps.get-variants.outputs.matrix }} + steps: + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: build-files + path: . - # - name: Unzip build files - # run: unzip build-files.zip -d . + - name: Unzip build files + run: unzip build-files.zip -d . - # - name: Get list of variants for an image - # id: get-variants - # run: echo "::set-output name=matrix::$(jq -c '.variants' ./dist/variant-matrix.json)" - - # test: - # name: Run test(s) - # runs-on: ubuntu-latest - # needs: setup - # strategy: - # matrix: - # variant: ${{ fromJson(needs.setup.outputs.matrix) }} - # fail-fast: false - # steps: - - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Setup Node - # uses: actions/setup-node@v4 - # with: - # node-version: 22 - # cache: npm - - # - name: Install dependencies - # run: npm ci - - # - name: Run test for ${{ matrix.variant.IMAGE }} - # env: - # VARIANT: ${{ matrix.variant.VERSION }} - # run: test/${{ matrix.variant.IMAGE }}/test.sh - - # publish: - # name: Publish image(s) - # if: github.ref == 'refs/heads/main' - # runs-on: ubuntu-latest - # environment: publishing - # needs: - # - setup - # - test - # strategy: - # matrix: - # variant: ${{ fromJson(needs.setup.outputs.matrix) }} - # fail-fast: false - # steps: - - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Download artifact - # uses: actions/download-artifact@v3 - # with: - # name: build-files - # path: . + - name: Get list of variants for an image + id: get-variants + run: echo "::set-output name=matrix::$(jq -c '.variants' ./dist/variant-matrix.json)" + + test: + name: Run test(s) + runs-on: ubuntu-latest + needs: setup + strategy: + matrix: + variant: ${{ fromJson(needs.setup.outputs.matrix) }} + fail-fast: false + steps: + + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Run test for ${{ matrix.variant.IMAGE }} + env: + VARIANT: ${{ matrix.variant.VERSION }} + run: test/${{ matrix.variant.IMAGE }}/test.sh + + publish: + name: Publish image(s) + if: github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + environment: publishing + needs: + - setup + - test + strategy: + matrix: + variant: ${{ fromJson(needs.setup.outputs.matrix) }} + fail-fast: false + steps: + + - name: Checkout + uses: actions/checkout@v4 + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: build-files + path: . - # - name: Unzip build files - # run: unzip build-files.zip -d . - - # - name: Install devcontainer cli - # run: npm install -g @devcontainers/cli - - # - name: Login to GitHub Container Registry - # uses: docker/login-action@v2 - # with: - # registry: ghcr.io - # username: ${{ github.actor }} - # password: ${{ secrets.NEFARIOUS_TOKEN }} - - # - name: Build devcontainer - # run: | - # devcontainer build \ - # --workspace-folder ./dist/${{ matrix.variant.IMAGE }}/${{ matrix.variant.VERSION }} \ - # --image-name ghcr.io/the-nefarious-developer/${{ matrix.variant.IMAGE }}:${{ matrix.variant.VERSION }} - - # - name: Push image to GitHub Container Registry - # run: docker push ghcr.io/the-nefarious-developer/${{ matrix.variant.IMAGE }}:${{ matrix.variant.VERSION }} - - # - name: Make package public - # env: - # GITHUB_TOKEN: ${{ secrets.NEFARIOUS_TOKEN }} - # run: | - # gh api --method PATCH \ - # -H "Accept: application/vnd.github+json" \ - # /orgs/YOUR_ORG/packages/container/the-nefarious-developer%2F${{ matrix.variant.IMAGE }}/visibility \ - # -f visibility=public + - name: Unzip build files + run: unzip build-files.zip -d . + + - name: Install devcontainer cli + run: npm install -g @devcontainers/cli + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.NEFARIOUS_TOKEN }} + + - name: Build devcontainer + run: | + devcontainer build \ + --workspace-folder ./dist/${{ matrix.variant.IMAGE }}/${{ matrix.variant.VERSION }} \ + --image-name ghcr.io/the-nefarious-developer/${{ matrix.variant.IMAGE }}:${{ matrix.variant.VERSION }} + + - name: Push image to GitHub Container Registry + run: docker push ghcr.io/the-nefarious-developer/${{ matrix.variant.IMAGE }}:${{ matrix.variant.VERSION }} - # release: - # name: Generate release - # if: github.ref == 'refs/heads/main' - # runs-on: ubuntu-latest - # needs: publish - # steps: + release: + name: Generate release + if: github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + needs: publish + steps: - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Setup Node - # uses: actions/setup-node@v4 - # with: - # node-version: 22 - # cache: npm - - # - name: Install dependencies - # run: npm ci - - # - name: Generate version and release - # env: - # GITHUB_TOKEN: ${{ secrets.NEFARIOUS_TOKEN }} - # run: npm run semantic-release \ No newline at end of file + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Generate version and release + env: + GITHUB_TOKEN: ${{ secrets.NEFARIOUS_TOKEN }} + run: npm run semantic-release \ No newline at end of file