diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 250110117..5d91a4616 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,6 @@ name: CI # This action works with pull requests and pushes on: pull_request: - push: branches: - main diff --git a/.github/workflows/docker-cicd.yml b/.github/workflows/docker-cicd.yml new file mode 100644 index 000000000..123c16939 --- /dev/null +++ b/.github/workflows/docker-cicd.yml @@ -0,0 +1,75 @@ +name: docker-cicd + +on: + push: + branches: + - main + +env: + # We do not need Husky hooks installed for this workflow. + HUSKY: 0 + +jobs: + format_and_lint_and_test: + name: Format, Lint, Test + runs-on: ubuntu-latest + steps: + + - name: Checkout the repo + uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v2 + with: + node-version: "18.x" + + - name: Install dependencies + run: npm install + + - name: Format Check + run: npm run format-check + + - name: Lint + run: npm run lint + + - name: Test + run: npm run test + + build_and_push: + name: Docker build and push + needs: format_and_lint_and_test + runs-on: ubuntu-latest + steps: + + - name: Checkout the repo + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build image + run: docker build -t nsgcr/netrunner-cards-json . + + - name: Install doctl + uses: digitalocean/action-doctl@v2 + with: + token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} + + - name: Log in to DO Container Registry + run: doctl registry login --expiry-seconds 600 + + - name: Tag image with run id + run: + docker tag nsgcr/netrunner-cards-json \ + registry.digitalocean.com/nsgcr/netrunner-cards-json:${{ github.run_id }} + + - name: Tag image with latest + run: + docker tag nsgcr/netrunner-cards-json \ + registry.digitalocean.com/nsgcr/netrunner-cards-json:latest + + - name: Push run id tag to DO Container Registry + run: docker push registry.digitalocean.com/nsgcr/netrunner-cards-json:${{ github.run_id }} + + - name: Push latest tag to DO Container Registry + run: docker push registry.digitalocean.com/nsgcr/netrunner-cards-json:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..d1af6fe12 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM alpine:3.19 + +COPY ./v2/ /netrunner-cards-json/v2/ +COPY ./translations/ /netrunner-cards-json/translations/ +COPY ./pack/ /netrunner-cards-json/pack/ +COPY ./cycles.json ./factions.json ./mwl.json ./packs.json ./prebuilts.json ./rotations.json ./sides.json ./types.json /netrunner-cards-json/ + +ENTRYPOINT ["/bin/sh", "-c", "rm -rf /mnt/netrunner-cards-json/* && cp -r /netrunner-cards-json/* /mnt/netrunner-cards-json/ && exit"]