From ad34f026c7ffe01adcc87713ad583b3fc0864bd8 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 27 Jan 2022 10:25:09 +0100 Subject: [PATCH] install stable+nightly --- .github/workflows/devnet-release.yml | 152 ++++++++++++++------------- 1 file changed, 78 insertions(+), 74 deletions(-) diff --git a/.github/workflows/devnet-release.yml b/.github/workflows/devnet-release.yml index ae4ae5b43a6..82d77afd5c6 100644 --- a/.github/workflows/devnet-release.yml +++ b/.github/workflows/devnet-release.yml @@ -3,84 +3,88 @@ name: "Devnet Community Release" on: push: branches: - - main + - parity-ci-devnet jobs: deploy-devnet: - runs-on: - - ubuntu-latest + runs-on: ubuntu-latest concurrency: group: deploy-devnet cancel-in-progress: false steps: - - name: Clean up - continue-on-error: true - run: | - sudo chown -R $USER:$USER $GITHUB_WORKSPACE - docker system prune --force --all --volumes - - - uses: actions/checkout@v2 - - - uses: google-github-actions/setup-gcloud@master - with: - service_account_key: ${{ secrets.GCP_CREDENTIALS }} - export_default_credentials: true - - - uses: actions/setup-python@v2 - - - uses: cachix/install-nix-action@v16 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - uses: cachix/cachix-action@v10 - with: - name: composable-community - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - extraPullNames: composable-community - - - name: Set env - run: | - echo "RELEASE_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV - - - name: Push artifact - run: | - /home/runner/.cargo/bin/cargo build --release - tar -czvf composable-picasso-${{ env.RELEASE_VERSION }}.tar.gz target/release/composable - gsutil mv *.tar.gz gs://composable-binaries/community-releases/picasso/ - - - name: Load state - run: | - cd nix - - echo $(cat devnet.json | jq --arg version "${{ env.RELEASE_VERSION }}" '.composable.version = $version' | jq --arg hash "$(nix-prefetch-url https://storage.googleapis.com/composable-binaries/community-releases/picasso/composable-picasso-${{ env.RELEASE_VERSION }}.tar.gz)" '.composable.hash = $hash') > devnet.json - - jq --null-input --arg client_email "$GCP_DEVNET_SERVICE_ACCOUNT" --arg project_id "$GCP_PROJECT_ID" --arg key "\"$GCP_DEVNET_SERVICE_ACCOUNT_KEY\"" '{ "project_id": $project_id, "private_key": ($key | fromjson), "client_email": $client_email }' > ops.json - - if gsutil -q stat $NIXOPS_STATE_URL/$NIXOPS_STATE; - then - gsutil cp $NIXOPS_STATE_URL/$NIXOPS_STATE $NIXOPS_STATE - else - nix develop .#deploy --impure --command nixops create -d devnet-gce - fi - env: - NIXOPS_STATE_URL: "gs://composable-state" - NIXOPS_STATE: "deployment.nixops" - GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} - GCP_DEVNET_SERVICE_ACCOUNT: ${{ secrets.GCP_DEVNET_SERVICE_ACCOUNT }} - GCP_DEVNET_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_DEVNET_SERVICE_ACCOUNT_KEY }} - - - name: Deploy - run: | - cd nix - nix develop .#deploy --impure --command nixops deploy --check --confirm -d devnet-gce - env: - NIXOPS_STATE: "deployment.nixops" - - - name: Store state - if: always() - run: | - cd nix - gsutil cp $NIXOPS_STATE $NIXOPS_STATE_URL/ - env: - NIXOPS_STATE: "deployment.nixops" - NIXOPS_STATE_URL: "gs://composable-state" + - uses: actions/checkout@v2 + + - uses: google-github-actions/setup-gcloud@master + with: + service_account_key: ${{ secrets.GCP_CREDENTIALS }} + export_default_credentials: true + + - uses: actions/setup-python@v2 + + - uses: cachix/install-nix-action@v16 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - uses: cachix/cachix-action@v10 + with: + name: composable-community + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + extraPullNames: composable-community + + - name: Set env + run: | + echo "RELEASE_VERSION=$GITHUB_SHA" >> $GITHUB_ENV + + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Install latest Nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + target: wasm32-unknown-unknown + + - name: Push artifact + run: | + cargo build --release + tar -czvf composable-picasso-${{ env.RELEASE_VERSION }}.tar.gz target/release/composable + gsutil mv *.tar.gz gs://composable-binaries/community-releases/picasso/ + + - name: Load state + run: | + cd nix + + echo $(cat devnet.json | jq --arg version "${{ env.RELEASE_VERSION }}" '.composable.version = $version' | jq --arg hash "$(nix-prefetch-url https://storage.googleapis.com/composable-binaries/community-releases/picasso/composable-picasso-${{ env.RELEASE_VERSION }}.tar.gz)" '.composable.hash = $hash') > devnet.json + + jq --null-input --arg client_email "$GCP_DEVNET_SERVICE_ACCOUNT" --arg project_id "$GCP_PROJECT_ID" --arg key "\"$GCP_DEVNET_SERVICE_ACCOUNT_KEY\"" '{ "project_id": $project_id, "private_key": ($key | fromjson), "client_email": $client_email }' > ops.json + + if gsutil -q stat $NIXOPS_STATE_URL/$NIXOPS_STATE; + then + gsutil cp $NIXOPS_STATE_URL/$NIXOPS_STATE $NIXOPS_STATE + else + nix develop .#deploy --impure --command nixops create -d devnet-gce + fi + env: + NIXOPS_STATE_URL: "gs://composable-state" + NIXOPS_STATE: "deployment.nixops" + GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} + GCP_DEVNET_SERVICE_ACCOUNT: ${{ secrets.GCP_DEVNET_SERVICE_ACCOUNT }} + GCP_DEVNET_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_DEVNET_SERVICE_ACCOUNT_KEY }} + + - name: Deploy + run: | + cd nix + nix develop .#deploy --impure --command nixops deploy --check --confirm -d devnet-gce + env: + NIXOPS_STATE: "deployment.nixops" + + - name: Store state + if: always() + run: | + cd nix + gsutil cp $NIXOPS_STATE $NIXOPS_STATE_URL/ + env: + NIXOPS_STATE: "deployment.nixops" + NIXOPS_STATE_URL: "gs://composable-state"