diff --git a/.github/workflows/containers.yml b/.github/workflows/containers.yml index 3e694aa3b..2292fe00e 100644 --- a/.github/workflows/containers.yml +++ b/.github/workflows/containers.yml @@ -53,8 +53,13 @@ jobs: cp -r packages/lambda-tiler/static/ packages/server/ cp -r packages/lambda-tiler/static/ packages/cli/ - - name: Log in to registry - run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin + + - name: Login to GitHub Container Registry + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: '@basemaps/cli - Build and export to Docker' uses: docker/build-push-action@v5 diff --git a/.github/workflows/pull-request-container.yml b/.github/workflows/pull-request-container.yml new file mode 100644 index 000000000..03c3e36ff --- /dev/null +++ b/.github/workflows/pull-request-container.yml @@ -0,0 +1,67 @@ +name: Pull Request Containers + +on: + pull_request: + branches: + - master + types: [labeled, synchronize, opened] + +jobs: + containers: + name: Create containers + runs-on: ubuntu-latest + + if: | + contains(github.event.pull_request.labels.*.name, 'container') + + permissions: + id-token: write + contents: read + packages: write + + steps: + - uses: linz/action-typescript@v3 + + - name: Bundle & Package all files + run: | + npx lerna run bundle --stream + npm pack --workspaces + + - name: Set up Docker Qemu + id: qemu + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Copy packages and files + run: | + # Files are packed into the base directory + cp *.tgz packages/server/ + cp *.tgz packages/cli/ + cp -r packages/lambda-tiler/static/ packages/server/ + cp -r packages/lambda-tiler/static/ packages/cli/ + + - name: Login to GitHub Container Registry + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: '@basemaps/cli - Build and push cli PR container' + uses: docker/build-push-action@v5 + with: + context: packages/cli + platforms: linux/arm64,linux/amd64 + tags: 'ghcr.io/${{ github.repository }}/cli:pr-${{ github.event.number }}' + push: true + + - name: '@basemaps/server - Build and push server PR container' + uses: docker/build-push-action@v5 + with: + context: packages/server + platforms: linux/arm64,linux/amd64 + tags: ghcr.io/${{ github.repository }}/server:pr-${{ github.event.number }} + push: true