name: File server build & image publish run-name: Deploy file server ${{ github.ref }} on: push: branches: - main paths: - "Cargo.toml" - "crates/file-server/**" workflow_dispatch: {} env: PROJECT_ID: "parity-zombienet" GCR_REGISTRY: "europe-west3-docker.pkg.dev" GCR_REPOSITORY: "zombienet-public-images" jobs: build_and_push: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup gcloud CLI uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1 with: service_account_key: ${{ secrets.GCP_SA_KEY }} project_id: ${{ env.PROJECT_ID }} export_default_credentials: true - name: Login to GCP uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0 with: credentials_json: ${{ secrets.GCP_SA_KEY }} - name: Artifact registry authentication run: | gcloud auth configure-docker ${{ env.GCR_REGISTRY }} - name: Build, tag, and push image to GCP Artifact registry id: build-image env: IMAGE: "${{ env.GCR_REGISTRY }}/${{ env.PROJECT_ID }}/${{ env.GCR_REPOSITORY }}/zombienet-file-server" run: | docker build -t $IMAGE:${{ github.sha }} -f ./crates/file-server/Dockerfile . docker tag $IMAGE:${{ github.sha }} $IMAGE:latest docker push --all-tags $IMAGE echo "image=$IMAGE:${{ github.sha }}" >> $GITHUB_OUTPUT echo "image=$IMAGE:latest" >> $GITHUB_OUTPUT