Skip to content

Commit

Permalink
install stable+nightly
Browse files Browse the repository at this point in the history
  • Loading branch information
hussein-aitlahcen committed Jan 27, 2022
1 parent d68b3e8 commit ad34f02
Showing 1 changed file with 78 additions and 74 deletions.
152 changes: 78 additions & 74 deletions .github/workflows/devnet-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"

0 comments on commit ad34f02

Please sign in to comment.